ZXTape! 2.VIDEO BASIC (EDICOES LATINAS) - TAPE 13 SIDE AEDICOES LATINAS, LDA / JACKSON PORTUGUESSPECTRUM BASIC COURSENONE ORIGINAL TAPE20 TAPES COURSEVIDEOBASIC>+ @(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0:   EDICOES LATINAS " *317997|:7:7:7: Mn=09 :n,0;" ":n Cn=16:n,4;" ":n (>n=35:n,10 ;" ":n 216,23;" ";17,21;" ";18,21;" ";19,20;" ";20,20;" " 3  ? '#+563?`@###133~  qw{>|?  000000000000000000000000000000000000000000000000000000000000000000000000000100000001111022200000000000000211000000011112222000000000000002222200022222222220000000000000020200000002222222200000000000000000000000000000000000000666666666000000000066000000000006660088888888888888888880666660000000888===============8000000088888888?===============8888888888888888?<<<<<<<<<<<<<<<8888888888888888?;;;;;;;;;;;;;;;8888888888888888?;;;;;;;;;;;;;;;8888888888888888?:::::::::::::::8888888888888888?:::::::::::::::8888888888???888888888888888888:8888888888???8888????88?????::::8888888888???????889999999999:::888888888?88888888888888889999998888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999VIDEOLIST {>7 }*  EDICOES LATINAS * f(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 317997|:0:0:0:0:23658j\,8:236099\,20:20,0;:""318008|:236066\,86V:236077\,123{ 23675{\,88X:23676|\,127:7:7:1::#0;0,0; " PARA O GRAVADOR " (Cn=1502:.01z# =,*60<:n:490:600X F SUMARIO P,:AA=1:690:.6,21 d;K=4:p$="VIDEOHARDWARE: ":0710 n/p$="A Plotter ":0710 2K=K+2:p$="VIDEOBASIC-A LINGUAGEM: ":0710 .p$="GOSUB * RETURN ":0710 ,P$="Precisao Numerica ":710 =K=K+2:p$="VIDEOBREAK: ":0710 /p$="Invencoes Graficas ":0710 =K=K+2:p$="VIDEOBASIC-A PROGRAMACAO: ":0710 /p$="Area e Perimetro ":0710 .p$="de um quadrado ":0710 90490::AA=2:0690:.6,18 :K=7:p$="VIDEOTEST: ":0710 .p$="Jogo de adivinhas sobre ":0710 -p$="os temas da licao ":0710 <K=K+2:p$="VIDEOJOGO: ":0710 .p$="Visita Medica ":0710 <K=K+2:p$="VIDEONEXT: ":0710 .p$="No proximo numero... ":0710 #0490:1::0630v "REGISTRO DEL NOMBRE , 612:AA,BB,CC,DD,EE:aa=-2330J @"AA,BB:CC-AA,DD-BB,EE:3106 J60<,65A:-30,-19:8,18:1:9 ,7;"ESCREVE O TEU NOME";10 ,9 ;"NO TECLADO";11 ,8;"E PRIME ":n$ Tm9 ,7;" ";10 ,9 ;" ";11 ,8;" " ^K10 ,5;" ESTA BEM ESCRITO, ";11 ,7;N$;" ? (S/N)" r="S"400 |d="N"10 ,5;" ";11 ,7;" ":330J  360h NN=1̱N$:N+23296[,N$(N):N:N+23296[,"":23296[,""  0530 38&,64@,38&,79O,-2,38&,79O,38&,100d,-1,38&,100d,44,,112p,-2,44,,112p,72H,114r,-1 72H,114r,94^,118v,-2,94^,118v,134,110n,-1,134,110n,165,116t,-2 165,116t,197,111o,-1,197,111o,222,107k,-2,222,107k,220,90Z,-1 Ž220,90Z,215,70F,-1,215,70F,190,63?,-2,190,63?,160,65A,-2 ̺160,65A,130,60<,-2,130,60<,115s,63?,-2,115s,63?,90Z,59;,-2,90Z,59;,60<,65A,-2 *-2,0,0,0,0 LETREROS ROTATORIOS 3150:Y$="*PRIME UMA TECLA PARA CONTINUAR *" e#0;1,0;1;5;1;Y$(32 ):.001wn,30:"""": TY$=Y$(2)+Y$(1):.0004uQX,45-:.0006vIQ,557:495  TEXTO :0630v:13 ,13 :22,0:0,30:-22,0:0,-30:11 ,0;" Poe o gravador em marcha " I=116:.04|# =,36$-I:I:150:11 ,0;" ":10 ,0;" estou a carregar "''" VIDEOHARDWARE ":7:236066\,0:236077\,60<:0,0;"":"" NLE OS UDG X4:0610b:N=063?:A:"A"+N,A:N: b00,31,16,16,18,16,16,491,0,240,8,8,72H,8,8,204,80P,144,63?,32 ,63?,2,2,2,10 ,9 ,252,4,252,64@,64@,64@,2,4,4,8,8,568,121y,1,64@,64@,64@,64@,64@,64@,192,192,2,2,2,2,2,2,14,62>,64@,64@,124|,12 ,12 ,4,4,0 lHOMBRECILLO v&N=302-1:8 t(N/2)=(N/2)17,N;" ";18,N;" ";19,N;" ":.01z# =,30:N:0660 Z17,N;" ";18,N;" ";19,N;" ":.01z# =,40(:N:0660  RECUADRO 1000:AA,BB;P$:AA=(21-AA)*8-2:BB=BB*8-2:CC=P$*8+4:BB,AA:CC,0:0,12 :-CC,0:0,-12 :BB+1,AA-1:CC,0:0,12 : +BB=11 :P$="VIDEOLIST":0680: LETREROS ENTRANTES ON=1̱P$:K,31-N;P$(N):.002xn,K*N/8:N:K=K+1: a0,0:255,0:0,175:-255,0:0,-174: ?XY! CONTINUAR **PRIME UMA TECLA PARAaP9CAR LIST 8|>-"$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >.":9000(# VW$="O PLOTTER REPRESENTA UM PASSO EMFRENTE NO RESPEITO A IMPRESSO-RA, NA REPRESENTACAO GRAFICA DASINFORMACOES SOBRE PAPEL.":9000(# `}W$="ESTE E CAPAZ DE TRACAR RECTAS,CIRCULOS E PONTOS MEDIANTE UMACANETA MONTADA SOBRE DOIS BRACOSMECANICOS.":9000(# jW$="MAIS EXACTAMENTE, UM PLOTTER ECONSTITUIDO POR UMA BASE ONDE SEAPOIA O PAPEL E UMA OU MAIS CA-NETAS QUE SE DESLOCAM SOBRE DOISBRACOS:UM VERTICAL E OUTRO HORI-ZONTAL.":9000(# tgW$="QUANDO O COMPUTADOR TEM QUE ES-CREVER, FAZ COM QUE A CANETABAIXE ATE AO PAPEL.":9000 (# ~,W$="OBSERVA EXEMPLO SEGUINTE:":9000(#  100d VW$="O BRACO HORIZONTAL E MENOR QUE OVERTICAL; E O QUE SUSTEM A CANE-TA.":9000(# W$="POSTO QUE ATRAVES DA INSTRUCAO E POSSIVEL INDICAR AOPLOTTER AS COORDENADAS DE QUAL-QUER PONTO, PODE TRACAR-SE TODOO TIPO DE CURVAS.":9000(# W$="O PLOTTER TAMBEM PODE ESCREVERCOMO UMA IMPRESSORA, COM A DIFE-RENCA DE QUE CADA CARACTER E DE-SENHADO MEDIANTE SEGMENTOS.":9000(#  KW$="ESTE E UM EXEMPLO DE CARACTERESESCRITOS COM UM PLOTTER.":9000(#  300, JW$="PRIME R .... REPETIR A LICAO C .... CONTINUAR":9000(# 23560\="R"1000 +23560\ɯ"C"9100#:1420  5P$=" *PRIME UMA TECLA E POE EM MARCHA O GRAVADOR" 310 ,0;8;9 ;P$(32 ) .3,*30 P$=P$(2)+P$(1) "=""1550 ,3:7:7:7:0,0:"" Ѓ(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0:7:7:7: r31969|:""31970|:236066\,0:236077\,124|:23658j\,8:1:1:  RES=0 D10 :2090*:I=6162:""2080  ?((I/2)-1);I,5;A$:.07}\(,40(-I:I E10 :2090*:I=166-2:""2080   ?((I/2)-1);I,5;A$:.05|L,40(-I:I  2030  .1}L,20: *?9900&+RES:A$:RES=RES+1:RES=3RES=0 4 #(y=0:x=0 #- 9300T$ #2l=w$ #<y=5-(l/64@) #F!op=0y,x;w$:9100# #P l=1l #Z o$=w$(l) #d y,x;o$ #n1x=x+1:x=32 x=0:y=y+1 #xo$" ".002xn,20 #}o$=".".2~L,10 #L # N=0 #23560\,0 #%p$="PRIME UMA TECLA PARA CONTINUAR" #G=1̱P$ #NP$(G)=" " ##1;1,G;P$(G) # .004yn,10 +20*N #G #N=N #"23560\=09110# #"" # $T7G=010 :4;1;G,0,,:G $^%G=010 :G,0,,:G $h/0,172:3;255,0 $r@0,172-8*10 :3;255,0 $| %z0,480,24,0,-12 ,0,0,-40(,-12 ,0,24,0,0,0 %V0,8,0,40(,24,-40(,0,40(,0,0 %12 ,28,12 ,0,0,-12 ,-8,-8,-8,0,-8,8,0,24,8,8,8,0,8,-8,0,0 %24,8,-24,0,0,20,12 ,0,-12 ,0,0,20,24,0,0,0 %E24,8,-24,0,0,40(,0,0 %24,8,-24,0,0,20,12 ,0,-12 ,0,0,20,24,0,0,0 %}0,8,0,40(,0,-16,24,16,-24,-16,24,-24,0,0 &&RES=0:" PARA O GRAVADOR " &" VIDEOHARDWARE " &" PRIME UMA TECLA " yx#87P#nW7PRIME R .... REPETIR A LICAO C .... CONTINUARORP.A TECLA E POE EM MARCHA O GRAVADOR *PRIME UMCAR HARD |#r2"$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":""F$():"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dF"23675","66":"23676","124":ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME ":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i \RC=U:ڰ"8":tx="8330":RR="8150":IN="8400":A$=" GOSUB - RETURN":"8410":"8300":RR cٰ"9":u:"3"::u+u:,,,,z,z;:t$="E agora como se memorizam nu-meros no ...":tx:ڰ"7" 6n=z:ٰ"4";"6",N;" @";"7",N;" ~|";"8",N;" \]" C"5","21";ڰ"2";" STACK ";ڰ"7";ٰ"4";U;;"9","21";" " Y"7","3";7;" ";"8","23";" ";9 ,23;" " BI="10"̰"15":ٰ"4";I,"22";" ":I:ٰ"4";I,"22";"" j=ṵ"4":a="f"(j) Ji="3"̰"22":"7",i;ڰ"7";" ";u;a:װ".03",i+"30":װ".03",-i+"30":i HZi="8"̰"16-j":i,"23";u;a;i-u,"23";ڰ"7";" ":װ".01","i+20":װ".01",-i+"30":i j RR E"2":ڰ"3":Z,Z,,,,Z,Z;:T$="...e como se recuperam...":tx:ڰ"7" hj="4"u-u:a="f"(j) 0]i="16-j"̰"8"-u:i-u,"23";u;a;i,"23";ڰ"7";" ":װ".01","i+30":װ".01",-i+"30":i bMi="22"̰"3"-u:"7",i;u;a;ڰ"7";" ":װ".03",i+"30":װ".03",-i+"30":i ,"7","3";u;a:"100":"7","3";z,:j ڰ"8":RR:IN:"8300"  RR:ڰ"8":IN:"8070":"1000" @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+n$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" t$=:t$="F"  t$="I" t$="C""8000"  "8090" 1502:t$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 ldA=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-a/2",U; n T$=F$(rc) v&"8330":T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" U;U;:c=Z:N=U̱t$ (T$(N)="%"8150:"8400":vc=u: T$(N)="&"'U''" ";: T$(N)="#"P="8": T$(N);:T$(N)=" "8380 .002xn,31 *OPT$(N)=".".1}L,30:9 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: ڌVC=Z:"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: ! t$:ñt$ !cenu;"16-t$/2"; ! "8330":"8450" !5J=U+a9 +a:j,u;6+(a=10 ),a$:j: ! A=U+U:J="26"̰"32"6:"28"-J/A,ER+J/A*.73333:J,Z:A,-A,/A:Z,-J*.73333,Z:-A,-A,-/A:-J,Z:-A,A,/A:Z,J*.73333:A,A,/A:J: &HP"m";1;"GOSUBINTR1":*"M";1;"GOSUBINTR1":*"M";1;"GOSUBINTR1" zu' _A COMBINACAO SERVE PARA DEFINIR BLOCOS DEINSTRUCOES (ROTINAS-PROGRA-MAS AUTONOMOS), QUE SE PODEMCHAMAR CADA VEZ QUE SEJA UTILOU NECESSARIO.% %AS RAZOES PARA EMPREGAR ESTATECNICA EM LUGAR DA PROGRA-MACAO SEQUENCIAL, SAO FUNDA-MENTALMENTE DUAS:UMA PURAMENTEESTETICA, AO PERMITIR A DE-COMPOSICAO DE UM PROGRAMA EMBLOCOS ELEMENTARES, MELHORANDOPORTANTO A SUA LEGIBILIDADE EESQUEMATIZACAO. OUTRA PELA OPTIMIZACAO, POSTOQUE A UNIAO EVITA A DUPLICACAO DE GRUPOSDE INSTRUCOES IDENTICAS,COM GANHO EVIDENTE DE MEMO-RIA.% %A ROTINA PODE-SE CONSIDERARCOMO UMA NOVA INSTRUCAO DE-FINIDA PELO PROGRAMA, E SEMLIMITES DE COMPLEXIDADE. POR EXEMPLO, SUPONHAMOS QUEDESEJAMOS ENVIAR UMA MENSAGEMDE ERRO NO CASO DO DADOINDICADO NAO SER VALIDO.% %EM VEZ DE REPETIR VARIAS VE-ZES AS INSTRUCOES QUE DE-TECTAM O ERRO, PODEMOS ES-CREVER UMA ROTINA COMPOSTAEXACTAMENTE COM AS MESMASINSTRUCOES, FINALIZANDO COM E CHAMANDO-A COMCADA VEZ QUE SEJA NE-CESSARIO.% %10 INPUT PRECO 20 IF PRECO<0 THEN GOSUB 100: GOTO 10 30 INPUT QUANTIDADE 40 IF QUANTIDADE>99 THEN GOSUB100: GOTO 30 50 .... 100 REM INDICACAO DE ERRO 110 PRINT 'ERRO' 120 PAUSE 200 130 PRINT 'OUTRA VEZ' 140 RETURN% %TAMBEM NESTE SIMPLES EXEM-PLO O ECONOMIZAR DE INSTRUCOESE EVIDENTE, SE DESEJARES TRO-CAR O TEXTO DA MENSAGEM OU ADURACAO DA PAUSA, BASTA-TEEXECUTAR A OPERACAO NUMUNICO LUGAR, MANTENDO INTACTOO PROGRAMA PRINCIPAL.%POSTO QUE PRODUZ UMSALTO NA ROTINA DE CHAMADA, ENECESSARIO QUE A DIRECCAO DESAIDA FIQUE MEMORIZADA PARAPODER VOLTAR A ELA NO FINALDA ROTINA. COM ESTE OBJECTIVOEXISTE UMA AREA DA MEMORIACHAMADA E LA QUE CADA TOMA UMA DIRECCAO, ECADA A RETOMA (POP).NESTAS AS OPERACOESAFECTA-SE SEMPRE A ORDEM DELEITURA, OS VALORES SAO LIDOSDE NOVO POR ORDEM INVERSA ADA SUA INTRODUCAO.# #SE POR UM ERRO DO PROGRAMAFOREM EFECTUADOS MAIS QUE , NO STACK CON-TINUARIAM A ACUMULAR-SE NUME-ROS QUE ACABARIAMPOR CHAMAR A MEMORIA, PRODU-ZIDO-SE O ERRO DE ; NO CASO OPOSTO,NAO SERIA POSSIVEL TOMAR MAISVALORES ALEM DOS JAINTRODUZIDOS, O ERRO SERIA.# # [t$eaN  A GOSUB - RETURN 'l TA COMBINACAO c  CAR LING 1 | "$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >SERVE PARA DEFINIR BLOCOS DEINSTRUCOES (ROTINAS-PROGRA-MAS AUTONOMOS), QUE SE PODEMCHAMAR CADA VEZ QUE SEJA UTILOU NECESSARIO.% %AS RAZOES PARA EMPREGAR ESTATECNICA EM LUGAR DA PROGRA-MACAO SEQUENCIAL, SAO FUNDA-MENTALMENTE DUAS:UMA PURAMENTEESTETICA, AO PERMITIR A DE-COMPOSICAO DE UM PROGRAMA EMBLOCOS ELEMENTARES, MELHORANDOPORTANTO A SUA LEGIBILIDADE EESQUEMATIZACAO. OUTRA PELA OPTIMIZACAO, POSTOQUE A UNIAO EVITA A DUPLICACAO DE GRUPOSDE INSTRUCOES IDENTICAS,COM GANHO EVIDENTE DE MEMO-RIA.% %A ROTINA PODE CONSIDERAR-SECOMO UMA NOVA INSTRUCAO DE-FINIDA PELO PROGRAMA, E SEMLIMITES DE COMPLEXIDADE. POR EXEMPLO, SUPONHAMOS QUEDESEJAMOS ENVIAR UMA MENSAGEMDE ERRO NO CASO DO DADOINDICADO NAO SER VALIDO.% %EM VEZ DE REPETIR VARIAS VE-ZES AS INSTRUCOES QUE DE-TECTAM O ERRO, PODEMOS ES-CREVER UMA ROTINA COMPOSTAEXACTAMENTE COM AS MESMASINSTRUCOES, FINALIZANDO COM E CHAMANDO-A COMCADA VEZ QUE SEJA NE-CESSARIO.% %10 INPUT PRECO 20 IF PRECO<0 THEN GOSUB 100: GOTO 10 30 INPUT QUANTIDADE 40 IF QUANTIDADE>99 THEN GOSUB100: GOTO 30 50 .... 100 REM INDICACAO DE ERRO 110 PRINT 'ERRO' 120 PAUSE 200 130 PRINT 'OUTRA VEZ' 140 RETURN% %TAMBEM NESTE SIMPLES EXEM-PLO O ECONOMIZAR DE INSTRUCOESE EVIDENTE, SE DESEJARES TRO-CAR O TEXTO DA MENSAGEM OU ADURACAO DA PAUSA, BASTA-TEEXECUTAR A OPERACAO NUMUNICO LUGAR, MANTENDO INTACTOO PROGRAMA PRINCIPAL.% POSTO QUE PRODUZ UMSALTO NA ROTINA DE CHAMADA, ENECESSARIO QUE A DIRECCAO DESAIDA FIQUE MEMORIZADA PARAPODER VOLTAR A ELA NO FINALDA ROTINA. COM ESTE OBJECTIVOEXISTE UMA AREA DA MEMORIACHAMADA .E LA QUE CADA TOMA UMA DIRECCAO, ECADA A RETOMA (POP).NESTAS OPERACOES AFECTA-SESEMPRE SEMPRE A ORDEM DELEITURA, OS VALORES SAO LIDOSDE NOVO POR ORDEM INVERSA ADA SUA INTRODUCAO.# #SE POR UM ERRO DO PROGRAMAFOREM EFECTUADOS MAIS QUE , NO STACK CON-TINUARIAM A ACUMULAR-SE NUME-ROS QUE ACABARIAM PORCHAMAR A MEMORIA, PRODU-ZINDO-SE O ERRO DE ; NO CASO OPOSTO,NAO SERIA POSSIVEL TOMAR MAISVALORES ALEM DOS JAINTRODUZIDOS, O ERRO SERIA.# # LING. DOISi k*  EDICOES LATINAS * Zf(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":""F$():"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dF"23675","66":"23676","124":ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME ":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i $TX="8330":IN="8400":RR="8150" ERC=U:A$=" GOSUB * RETURN":"8410":8,0;:"8300":RR ]ٰ"9":"3"::U:Z,Z,,,,;Z,Z;:T$="E agora como funciona e ...":TX:ڰ"7" \''"10 INPUT A"''"20 LET C=3*B+1"''"30 IF X$=""T"" THEN..."''"40 GOSUB 100"''"50 PRINT A-B" G''ڰ"5";"100 IF A=B THEN LET....",,,"110 LET C=3",,,,"120 RETURN",,,, 6"3","25";ڰ"4";"STACK":"5","25";ڰ"2";" - - " rr:"3500":I=ṵ"4":t$ "10","14","20","7" Qj=z̰t$:"i*2+1",j;u;u;" ":װ".1",j:"i*2+1",j;ڰ"6";u;" ":j:"100":i V[ڰ"4":Z,Z,,,,Z,Z;:t$="A direccao seguinte a GOSUBesta colocada no STACK:":TX:ڰ"7" `Nrr:"11",z;u;u;" ":"150":i=z̰"25":"12",i;ڰ"6";" 50":װ".1",i:i j[i="11"̰"5"-U::i,"26";ڰ"6";"50";I+U,"26";" ":װ".1",i:i:"5","25";U;" 50 " ob"11",Z;"50":U:Z,Z;,,,,Z,Z;:T$="Realiza-se portanto um salto a rotina indicada:":TX:ڰ"7" t@rr:"9","8";u;u;" ":u,u:"14",z;u;u;" ":"150" Fi="11"̰"6"-U::i,"26";ڰ"7";" ";I+U,"26";" ":i:"12",z,,  "3800":I="14"̰"18"u+u:T$ Cj=z̰t$:i,j;u;u;" ":װ".1",j:i,j;ڰ"6";u;" ":j:"100":i "23","11","10" )"9","8";u;" ":"14",z;u;" "  U;"18","3";u;" ":ڰ"4":z,z,,,,z,z;:t$="Para terminar volta-se adireccao tomada pelo STACK:":TX:ڰ"7" .rr:U;"5","25";U;" ";"11",Z;" " #R"150":"18",z;ڰ"8";u,:i=ṵ"5":ڰ"4";"5",i+"24";" - - "(i):װ".5",i:i (R"150":j=z̰"12":"11",j;u;u;" ":װ".1",j:"11",j;ڰ"6";u;" ":j:"100" 2W"150":I=Z̰"21":I,Z;U,,:I:ڰ"6":Z,Z,,,,z,z;:T$="OK, "+N$+" ?":TX:ڰ"7":RR ڰ"7":ڰ"8":in:"8300":rr ڰ"8":IN:"8070":"1000" @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+N$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" t$=:t$="F"  t$="I" t$="C""8000"  "8090" 1502:t$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 ldA=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-a/2",U; n T$=F$(rc) v&"8330":T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" U;U;:c=Z:N=U̱t$ (T$(N)="%"8150:"8400":vc=u: T$(N)="&"'U''" ";: T$(N)="#"P="8": T$(N);:T$(N)=" "8380 .002xn,43+ *OPT$(N)=".".1}L,30:9 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: ڌVC=Z:"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: ! t$:ñt$ !cenu;"16-t$/2"; ! "8330":"8450" !5J=U+a9 +a:j,u;6+(a=10 ),a$:j: ! A=U+U:J="26"̰"32"6:"28"-J/A,ER+J/A*.73333:J,Z:A,-A,/A:Z,-J*.73333,Z:-A,-A,-/A:-J,Z:-A,A,/A:Z,J*.73333:A,A,/A:J: zu2COMO PODERAS COMPROVARO STACK PERMITEESCREVER ROTINAS QUE CHAMEMOUTRAS OU A SI MESMAS.AS VEZES PODE SERUTIL INSERTAR VARIOS ,CONSEGUINDO VARIOS PONTOS DEENTRADA, CONDICIONANDO ASSIMA EXECUCAO DE CERTASFUNCOES.# #MUITAS VEZES SERA NECESSARIOINTRODUZIR E DEPOIS EXTRAIRDADOS DOS CAMPOS UTILIZADOSPELA ROTINA.% %POR EXEMPLO, SUPONDO QUE AROTINA QUE INTRODUZ OS PONTOSSEPARADORES DOS MILHARESTENHA COMO A VARIA-VEL , E COMO A, PODIAMOS PREPARAR O DESTA MANEIRA:& &10 INPUT N 20 LET A=N: GOSUB 100:PRINT Z$30 .... 100 REM ROTINA 110 LET Z$=STR$ A 120 LET Z$=... 130 FOR I=... 140 RETURN% %TERAS OBSERVADO A IMPORTAN-CIA E UTILIDADE DESTA ROTINA;COM EFEITO ESTA TECNICA CONS-TITUE A BASE DA PROGRAMA-CAO, E COMO TERAS PODIDOCONSTATAR NAO EXISTE APLICACAODE CERTA IMPORTANCIA (INCLUI-DO O SISTEMA OPERATIVO DOSPECTRUM), QUE POSSA PRESCIN-DIR DE UMA CONTRIBUICAO TAOSUSTANCIAL.% %POR ISTO CONVIDO-TE AADQUIRIRES O MAXIMO DE DO-MINIO SOBRE O TEMA: DECERTOQUE OS TEUS ESFORCOS SERAOCOMPENSADOS.# #  ea N  A GOSUB * RETURN  c ,+ pT10yCAR LING 2 |^B "$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >,CONSEGUINDO VARIOS PONTOS DEENTRADA, CONDICIONANDO ASSIMA EXECUCAO DE CERTASFUNCOES.# #MUITAS VEZES SERA NECESSARIOINTRODUZIR E DEPOIS EXTRAIRDADOS DOS CAMPOS UTILIZADOSPELA ROTINA.% %POR EXEMPLO, SUPONDO QUE AROTINA QUE INTRODUZ OS PONTOSSEPARADORES DOS MILHARESTENHA COMO A VARIA-VEL , E COMO A, PODIAMOS PREPARAR O DESTA MANEIRA:& &10 INPUT N 20 LET A=N: GOSUB 100:PRINT Z$30 .... 100 REM ROTINA 110 LET Z$=STR$ A 120 LET Z$=... 130 FOR I=... 140 RETURN% %TERAS OBSERVADO A IMPORTAN-CIA E UTILIDADE DESTA ROTINA;COM EFEITO ESTA TECNICA CONS-TITUI A BASE DA PROGRAMA-CAO, E COMO TERAS PODIDOCONSTATAR NAO EXISTE APLICACAODE CERTA IMPORTANCIA (INCLUI-DO O SISTEMA OPERATIVO DOSPECTRUM), QUE POSSA PRESCIN-DIR DE UMA CONTRIBUICAO TAOSUBSTANCIAL.% %POR ISTO CONVIDO-TE AADQUIRIR O MAXIMO DO-MINIO SOBRE O TEMA: DECERTOQUE OS TEUS ESFORCOS SERAORECOMPENSADOS.# # LING. TRESS! U*  EDICOES LATINAS * Zf(23613=\+256*23614>\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I dF"23675","66":"23676","124":ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i Otx="8330":RR="8150":IN="8400":A$="OS NUMEROS E O ":"8410" LT$="A GAMA DE NUMEROS QUE OSPECTRUM E CAPAZ DE MANEJARE MUITO MAIS EXTENSA DA QUETEMOS VISTO ATE AGORA.":TX:RR 'IN:T$="ESTA COMPREENDIDA ENTRE:":TX ]U:'''''" 0.000...(37 zeros)..0000000001"'''" ...e..."'''" 10000...(38 zeros)..0000000000." RR:IN:T$="MAS PARA REPRESENTAR NUMEROSDESTE TIPO A FORMULA EM-PREGADA ATE AGORA EINADEQUADA: QUANDO OS NUMEROSSAO MUITOS O ESPACO OCUPADONO ECRAN AUMENTA EXAGERADA-MENTE, E A LEITURA DOS VA-LORES TORNA-SE DIFICIL.":TX RR:IN:T$="RECORREMOS ENTAO A UMA EX-PRESSAO ALTERNATIVA: A NOTA-CAO CIENTIFICA OU A VIRGULAFLUTUANTE (FLOATING POINT). ESTA TOMA A SEGUINTE FORMA:":TX M"10","10";u;"1.5E+3":' " que significa:";"14","8";u;"1.5 * 10^3;" <''" ";:t$="E DECERTO: 1.5*1000 E IGUAL A<1500>.":TX:RR in:U,U;U;"E AQUI ALGUNS EXEMPLOS: ":"1300":i="-5"-U:"I+10","6";;u;"1E";I;ڰ"7";"15";"= ";"0"I<-U;"10^I":I (U"1300":i=Z̰"5":t$:i+"11","6";u;"1E+";I;ڰ"7";"14";" = ";"24-t$";t$:i x+"1","10","100","1.000","10.000","100.000" RR:IN:3,U;:T$="NA PRATICA, PARA OBTERO NUMERO NA SUA FORMA ORDINA-RIA, TENS QUE DESLOCAR ADIREITA ( POSITIVO), OU AESQUERDA ( NEGATIVO), OPONTO DECIMAL PONDO TANTOSZEROS COMO O NUMERO QUE SEGUEA .":TX lIڰ"7":Z:"1900":i=ṵ"4":b,a:"14","11";ڰ"3";b;"E+";A;:" " Nj=za:"16","11";b;ڰ"5";"E+";a-j;:" ":װ".1",j:b="b*10":"100":j +"16","11";u;b/"10";:" ":rr:i 45"2.498","6","7.328374",u+u,"2.8","6","5","4" `kڰ"3";"13",U;"..e para E negativo...":"2400":i=ṵ"4":b,a:"16","10";ڰ"3";b;"E";-A;:" " Pj=za:"18","10";b;ڰ"5";"E";-a+j;:" ":b="b/10":װ".1",j:"100":j (."18","10";u;b*"10";:" ":rr:i ."1.234","3","3.5","4","2.7","1",u,"5" ڰ"8":in:t$="NATURALMENTE ESTA FORMAACEITA-SE TAMBEM EM INPUT.POR-TANTO E DE TODO INDIFE-RENTE INDICAR <1E2>, OU<1e2> NO LUGAR DE 100.":TX '':T$="NA FASE DE IMPRESSAO OSPECTRUM PASSA AUTOMATICAMENTEAO MODO DE VIRGULA FLUTUANTEQUANDO O NUMERO SUPERA OS OITONUMEROS.":TX HI=Ṵ"4":װ".1",I:"100":ڰ"*6";"14+I","10";I+"99999996":I:RR IN:'''''':T$="RELACIONADAS COM ISTO PODEMRESULTAR UTEIS ALGUMAS CONSI-DERACOES SOBRE A PRECISAO DOSRESULTADOS ALCANCAVEIS COM OSPECTRUM.":TX RR:IN:T$="TODOS OS NUMEROS REPRESEN-TAM-SE EM MEMORIA POR MEIODE 5 BYTES;SE SE TRATA DE VA-LORES INTEIROS COMPREENDIDOSENTRE-65535 E +65535,A SUA CO-DIFICACAO SERA A STANDAR " BT$=T$+"(BYTE DE NIVEL BAIXO QUE PRE-CEDE O DE NIVEL ALTO).":TX tdi=ṵ"4":"12"+i,"1";u;" ";ڰ"5";" ";ڰ"3";" ";ڰ"4";" ";ڰ"5";" ":i ~M"14","1";ڰ"8";"- - - SINAL BAIXO ALTO - - -";"15","13";"NIV. NIV." S'':T$="O BYTE ESTABELECE-SEEM 0 PARA <+> E EM 255 PARA<->.":TX:RR ؋IN:T$="OS NUMEROS QUE NAO SE PODEMREPRESENTAR DESTA FORMAESCREVEM-SE EM EXPOENTE, NAOEM BASE DECIMAL MAS SIM BINA-RIA.":TX _i=ṵ"3":"12"+i,"3";u;" ";ڰ"6";" ";ڰ"5";" ";ڰ"6";" ";ڰ"5";" ":i *"14","3";ڰ"8";"EXP. M A N T I S S A"  +I=Ṵ"3":"65+I","48":ٰ"3";Z,"23":I %"16","8";"^";"17","6";"SINAL" RR:IN:T$="O EXPOENTE OBTEM-SE SOMAN-DO <128> AO NUMERO DE MULTI-PLICACOES (OU DIVISOES) POR<2>,NECESSARIO PARA REDUZIR ONUMERO ORIGINAL A UM VALOR IN-CLUIDO ENTRE 0.5(COMPREENDIDO)E 1 (EXCLUIDO).":TX ҰT$="DE FORMA ANALOGA A CONVER-SAO DECIMAL/BINARIA, OB-TEM-SE OS 31 BITS (O PRIMEIROSERVE PARA O SINAL) A INSERIRNOS 4 BYTES DENOMINADOS.":TX:RR \IN:T$="MAS DESTA VEZ NAO UTILIZAMOSAS POTENCIAS DE<2>,MAS SIM OSSEUS RECIPROCOS.:":TX h+'':T$="1/2 1/4 1/8 1/16 1/32...":TX >'':T$="O NUMERO DECIMAL <0.75> SERAREPRESENTADO POR:":TX ]'':T$="1100000......":TX:T$="POSTO QUE DERIVA DA SOMADE 1/2 E DE 1/4.":'':TX:RR 0]IN:T$="O SINAL CODIFICA-SE COM <0>PARA SIGNIFICAR <+>, E <1> PA-RA SIGNIFICAR <->.":TX RR:IN:"8070":"1000" @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+N$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" t$=:t$="F"  t$="I" t$="C""8000"  "8090" 1502:t$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 lm8:A=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-a/2",U; n T$=F$(rc) v&"8330":T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" U;U;:c=Z:N=U̱t$ +T$(N);:OPT$(N)" ".002xn,25 -U:OPT$(N)=".".1}L,30:9 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: چ"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: ! t$:ñt$ !cenu;"16-t$/2"; ! "8330":"8450" !5J=U+a9 +a:j,u;6+(a=10 ),a$:j: ! A=U+U:J="26"̰"32"6:"28"-J/A,ER+J/A*.73333:J,Z:A,-A,/A:Z,-J*.73333,Z:-A,-A,-/A:-J,Z:-A,A,/A:Z,J*.73333:A,A,/A:J: &HM"M";1;"PRECINTRO":*"M";1;"PRECINTRO":*"M";1;"PRECINTRO" zu[t$eaN  AOS NUMEROS E O c0/ T/O NUMERO DECIMAL <0.75> SERAREPRESENTADO POR:TCAR LING 3 |3."$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >\),0:(23613=\+256*23614>\+1),0 _"31969":z=ç:u=::"23609","20":"23658","8":"""31970":""f$():"23606",z:"23607","124":ڰ"7":z::ڰ"8":u;"10",z;" PARA O GRAVADOR ":I=Z̰"10":װ".01","I*5":I d%ٰ"9":CEN=Z:OP=U:"100":a="127" i"23296"=a"160" n:"10","3";"ESCREVE O TEU NOME NO TECLADO E PRIME ":n$::"10","4";"ESTA BEM ESCRITO ? (S/N)";"6","15-N$/2";U;" ";N$;" " ="N""110" "S"130 .i=u̱n$+u+u:23295Z+i,(a+n$+a)(i):i .n$="":i="23297"̰"1e6":ian$=n$+¾i:i  rc=u:pn=u L!A$="OS NUMEROS E O SPECTRUM" V"i/2=(i/2)"a$=" "+a$ ~C"8410":vc=0:8,1;:"8300":"8150":"8400" "8070":"1100" @2Z:A$=" POE O GRAVADOR EM MARCHA ":"7":ڰ"7": JN=Z̰"29":װ".05","2*N" T2ٰ"4";"8",N;" @";"9",N;" ~|";"10",N;" \]" ^0N>"2"N<"29"1;"8",N;A$(N-2) hN rG8,30;" ";9 ,30;" ";10 ,30;" " | 7:"" *"7",U;:T$="ESCOLHE, "+N$+":":"8330" }"11","6";"F FIM";"13","6";"I VOLTA AO PRINCIPIO";"15","6";"C PASSO P/A PARTE";"16","6";" SEGUINTE" Z$=:Z$="F" Z$="I"rc=PN: Z$="C"8000@  "8090" 1502:t$=" PRIME UMA TECLA PARA CONTINUAR " /#Z;ڰ"6";U+U;U;U,Z;t$:.001wn,30 Ot$=t$(2)+t$(U):.0004uQX,45-:.0006vIQ,557:"""":  8160 ldA=Z:J=rc9999':F$(J,30)"%"F$(J,30)"#"A=A+U+(2F$(J,30)="&"):J mVC"10-A/2",U; n T$=F$(rc) v4"8330":T$=30T$(30)="#"rc=rc+u: {'F$(rc,30)="%"rc=rc+u:"8300" rc=rc+u:"8302" c=Z:N=U̱t$ (T$(N)="%"8150:"8400":vc=u: T$(N)="&"'U''" ";: T$(N)="#"P="8": T$(N);:T$(N)=" "8380 .001wn,30 *OPT$(N)=".".1}L,35#:6 "c=c+u:c=30c=Z:U;" "; N: ta=4:XL=248:YL=169:2::U+U,U;:3,3:a;XL,Z:a;Z,YL:a;-XL,Z:a;Z,-YL: چ"8400":"3","15-A$/2";A$:YL="11":XL="8*A$+16":"126-XL/2","142":XL,Z:Z,YL:-XL,Z:Z,-YL:U,-U:XL,Z:Z,YL:"13",U;: ! t$:ñt$ !cenu;"16-t$/2"; ! "8330":"8450" !5J=U+a9 +a:j,u;6+(a=10 ),a$:j: ! A=U+U:J="26"̰"32"6:"28"-J/A,ER+J/A*.73333:J,Z:A,-A,/A:Z,-J*.73333,Z:-A,-A,-/A:-J,Z:-A,A,/A:Z,J*.73333:A,A,/A:J: zuƣAE FACIL CONCLUIR QUE COM CINCOBYTES NAO E POSSIVEL REPRESEN-TAR COM ABSOLUTA PRECISAO NU-MEROS COMPOSTOS POR 20 OU 30ALGARISMOS. DE RESTO OS CALCULOS EFECTUAM--SE SOBRE APROXIMADAMENTE 9ALGARISMOS SIGNIFICATIVOS OSQUE EXEDEREM SERAO SUBSTITU-IDOS POR ZEROS.% %TAMBEM EXISTE A POSSIBILIDADEDE UM NUMERO DECIMAL AOSER CONVERTIDO NA FORMA QUEJA VIMOS, DE ORIGEM A VALO-RES PERIODICOS, NESTE CASOO NUMERO MEMORIZADO NAO SERAIDENTICO AO INTRODUZIDO. OUTRO MOTIVO DE IMPRECISAO EDEVIDO AO FACTO DE QUE ASFUNCOES MATEMATICAS DO TIPO, <^>, ETC., CALCULAM-SEMEDIANTE SEQUENCIAS EM SERIEE QUE, POR ISSO MESMO,NAO PODEM DAR ACESSO ARESULTADOS MATEMATICOS EXAC-TOS.% %TUDO ISTO PODE LEVAR POR VEZESA ERROS DE EXECUCAO MUITODIFICEIS DE IDENTIFICAR:& &10 LET A=SQR 100 20 PRINT A 30 IF A=10 THEN STOP& &PARECER-TE-A RARO AINDA QUEA LINHA 20 IMPRIMA UM PERFEI-TO <10>, NAO SERA EXECU-TADO, POSTO QUE NAODEVOLVE <10> COMO RESULTADO,MAS SIM <10.0000003>.% %HAVENDO IMPRESSO UNICAMENTEOS OITO ALGARISMOS MAIS SIGNI-FICATIVOS,O COMPUTADOR EFECTUAUM ARREDONDAMENTO, PORTANTO,NEM SEMPRE SE REPRESENTA OVALOR REAL DO NUMERO CONSIDE-RADO. DE QUALQUER FORMA E POSSIVELFORCAR O ARREDONDAMENTO DESTAMANEIRA:& &15 LET A=VAL STR$ A% %MODIFICANDO ASSIM O PROGRAMAANTERIOR, FUNCIONARA BEM; SEMTRABALHO ESTE METODO(OU OUTROSPARECIDOS), DEVEM USAR-SE COMAS DEVIDAS PRECAUCOES PARAEVITAR QUE UM ARREDONDAMENTOPREJUDIQUE LETALMENTE UMCALCULO.# # [t$ea N 'l c AOS NUMEROS E O SPECTRUMT-SE SOBRE APROXIMADAMENTE 9iCAR LING 4 |}+ "$$$~$$~$$$~$$~$~~bd&F(D(Zz  >>> @8Dp| |8H~|>@ƒB<" >, <^>, ETC., CALCULAM-SEMEDIANTE SEQUENCIAS EM SERIEE QUE, POR ISSO MESMO,NAO PODEM DAR ACESSO ARESULTADOS MATEMATICOS EXAC-TOS.% %TUDO ISTO PODE LEVAR POR VEZESA ERROS DE EXECUCAO MUITODIFICEIS DE IDENTIFICAR:& &10 LET A=SQR 100 20 PRINT A 30 IF A=10 THEN STOP& &PARECER-TE-A RARO AINDA QUEA LINHA 20 IMPRIMA UM PERFEI-TO <10>, NAO SERA EXECU-TADO, POSTO QUE NAODEVOLVE <10> COMO RESULTADO,MAS SIM <10.0000003>.% %HAVENDO IMPRESSO UNICAMENTEOS OITO ALGARISMOS MAIS SIGNI-FICATIVOS,O COMPUTADOR EFECTUAUM ARREDONDAMENTO, PORTANTO,NEM SEMPRE SE REPRESENTA OVALOR REAL DO NUMERO CONSIDE-RADO. DE QUALQUER FORMA E POSSIVELFORCAR O ARREDONDAMENTO DESTAMANEIRA:& &15 LET A=VAL STR$ A% %MODIFICANDO ASSIM O PROGRAMAANTERIOR, FUNCIONARA BEM; SEMTRABALHO ESTE METODO(OU OUTROSPARECIDOS), DEVEM USAR-SE COMAS DEVIDAS PRECAUCOES PARAEVITAR QUE UM ARREDONDAMENTOPREJUDIQUE LETALMENTE UMCALCULO.# #