Programmi per
PC128
OLIVETII PRODEST
Piero T odorovich - Pierina Loddo
© Copyright per l'edizione originale:
Gruppo Editoriale Jackson - Maggio 1987 Redattore di collana: Mauro Risani
Videoimpaginazione: Moreno Confalone Copertina: Emiliano Bernasconi
Stampa: Rotolito Lombarda - Cologno Monzese
Tutti i diritti sono riservati. Nessuna parte di questo libro può essere riprodotta memorizzata in sistemi di archivio.o trasmessa tramite qualsiasi
mezzo,elettronico,fotocopia, registrazione o altri senza la preventiva autorizzazione scritta dell'editore.
2
PREFAZIONE
Possedere un persona! computer, e' forse il mezzo migliore per cominciare a muovere i primi passi nell'immenso, attuale mondo informatico. Infatti, troppo spesso, viviamo da spettatori incantati, piuttosto che da protagonisti partecipi. Il PC 128, per le sue eccezionali doti didattiche e la praticita' d'uso, puo' es- sere considerato il computer piu' adatto all'apprendimento della programmazione, nonche' alla sperimentazione pratica di come puo' effettivamente esserci utile l'elaboratore nella vi- ta quotidianà, nel gioco, nella gestione di dati, ecc .. L'approc- cio, inizialmente frustrante, con una macchina ed un linguag- gio sconosciuto ed all'apparenza incomprensibile come il BA- SIC, rivelera' presto, a chi sapra' superare i primissimi scogli, infinite possibilita', nonche' l'importantissimo feed-back positi- vo sul proprio modo di pensare.
Un'idea confusa puo' talvolta governare le nostre azioni, ma, un progetto poco chiaro non potra' mai trasformarsi in un pro- gramma funzionante. Impariamo quindi ad usare il computer imparando ad essere piu' coincisi, ad analizzare correttamen- te un problema, riducendolo ad un insieme logico di operazio- ni che il computer potra' eseguire senza fallo, utilizzando ap- pieno le proprie capacita'. La difficolta' principale di chi segue la strada dell'autoapprendimento, consiste spesso nella man- canza di documentazione ed esempi pratici di programmazio- ne, da cui ricavare insegnamento ed una migliore padronanza nell'uso delle singole istruzioni o della loro interazione in un programma.
Con questo libro ci proponiamo di fornire al lettore una compie~
ta raccolta di programmi, che potra' essere una preziosa fonte di esempi, da cui attingere esperienza e sicurezza per i propri lavori. Grazie alle spiegazioni del testo ed ai listati presentati, ciascun programma potra' essere facilmente modificato, studia- to o adattato a diverse applicazioni.
Gli Autori
4
GUIDA ALL'USO DEI PROGRAMMI
Tutti i programmi presentati possono essere caricati su compu- ter, sia ricopiando il listato pubblicato, sia utilizzando la cas- sett::. allegata al libro. Sul nastro, i programmi, sono registrati in sequenza sul lato A della cassetta, con nome abbreviato simile a quello esposto nell'indice. Per il caricamento si consi- glia di seguire questa semplice procedura:
-premere il tasto di RESET
-selezionare dal menu iniziale il BASIC 128 pre mendo il tasto 1
-battere: LOAD -premere il tasto ENT
-premere PLAY sul registratore ed attendere il caricamento
-a caricamento terminato, premere il tasto STOP sul registratore ed awiare il programma con il comando RUN.
Per poter raggiungere velocemente qualsiasi programma sen- za dover visionare ogni volta quelli che lo precedono sul na- stro, e' consigliabile segnare la posizione d'inizio con il conta- giri per utilizzarla nei successivi caricamenti.
Alcuni programmi del libro (archivio, quiz, ecc.) prevedono la possibilita' di registrare i dati su nastro come file sequenziali, per tale scopo, occorre usare una cassetta diversa da quella del libro. Qualora si intendesse usare frequentemente qualcu- no dei programmi, si consiglia di salvarlo su di una cassetta di lavoro.
Titoli programmi PC 128
Programmatore Caratteri Grafici Indovina la Parola
Calendario Gioco del Sasso Intervista
Bioritmi Monitor Archivio Libri Dracula Adventure Bilancio Familiare Quiz Master Diagrammi Crittografia Effetti Grafici Anagramma Quiz Animali Business Graphic Numeri Romani Codice Colore Grafico 30 BlackJack
Agenda telefonica
6
I CALENDARIO I
La misura del tempo ha assillato l'umanita' da data immemora- bile; in mancanza di osservazioni astronomiche precise, l'an- no calcolato dall'uomo ha dovuto subire molti ritocchi prima di poter rappresentare effettivamente l'esatto periodo di rivoluzio- ne della terra intorno al sole. L'anno "Gregoriano" attualmente in vigore, prevede ogni quattro anni il cosiddetto anno bisesti- le, per recuperare con un giorno in piu', l'errore accumulato.
Per ulteriore precisione solo gli anni secolari divisibili per 400 sono bisestili (1600, 2000); ultima correzione (speriamo) intro- dotta da Gregorio Xlii nel 1582.
Il calcolo, tutt'altro che immediato, della durata dell'anno, non- che' della corrispondenza tra giorni del mese e giorni della set- timana, e' realizzato da questo semplice programma "Calenda- rio". Premendo i tasti cursore alto-basso e' possibile incremen- tare o decrementare l'anno visualizzato, premendo i tasti curso- re sinistra-destra e' possibile visualizzare tutti i mesi.
Premendo il tasto "P" si atterra' infine la stampa su carta di quanto visualizzato sullo schermo. Il tasto "O" termina l'esecu- zione del programma.
Commento alle linee del programma
80-120preparazione dei vettori contenenti i dati 140
anno e mese visualizzati all'inizio 160-270
calcolo principale 280-420
visualizzazione su schermo 430-510
lettura della tastiera 580-660
subroutine di stampa
8
10 REM
******************
20 REM
* *
30 REM
*
CALENDARIO*
40 REM
* *
50 REM
******************
60 l:;:EM
70 DIMMS<12>,D1<12) 80 REM INIZIALIZZAZIONE
9Ci ;.: -.. t,::·c·J·f.:' '[ .:._ J. UC· , F'"lFJ:::::lTfì1':.i.·PF"DM~~'T) •, . ·-- . U , • 1 --r· :: :~;: r\ ::-. .... :,::H(' ···t D.,.., .... .J1·1:., , r' ·,: .. '' J. .! : ... :;, ·t;IE·.:. .. 01 ' l ' ·NFYT ~ 1 .... • ...
1 1 n ... ~ ·.~: ,... :· l DATn e ... '':!° .:., Genn,~o ~, FPbbra~o ~8 M~r-0 ~1 ·~. 'ì ~· : : · : ::' ~-·-' ~ ~ [.:.: • ~·e ~~ .;.~\ ... , i~: } ·~:· ~:~ ~ :~ ~ , 1-1 ~J 1 1 .. ... ...: ,, ... e ,, 11 c:1 y 1 .. p. u , .... l , _, i u 1,~ n u , ... , L. u q . .1. u , ... 1
0 ~~~~~~~f~~~~~~ 7 ~~~~,~~:o~t:b~=~3~~Novem
J: :::;;:; ~Er!t' :e um, l....ur 1 ., !1<::11 ,, t 1·~·!1 , .. :i.1. u, v .·,!r1 ,, .... ~ .. ::ib
140 YF(:::: 1987: MT:::.,4
150 CLS:SCREEN 1,15.15
160 I FYF: / 4:= I NT ( \if;.· / 4) THEND 1 ( :;:: ) :::::29EU:'ìED l ( :?
) =<?8
170 X=YR:N=MT-3~J=12:GOSUB250:MM=L:IFMM>
9THENX==X-··1
180 N=X:J=400:GOSUB250:X=L
190 X4=INT(X/4l:Xl=INT!X/100>:KY=X+X4-X1
~N=MM:J=5:GOSUB250:K2=1....
200 M5=INT(MM/5l:M2=INTCK2/2)
210 N=K2~J=2:GOSUB250:P=l 220 KM=13*M5+5*M2+3*P
230 N=KY+KM+3:J=7:GOSUB250:B=l+1
240 GClT0280
250 K=INT<NJJ>:L=N-K*J
260 IFL<OTHENL=L+J
270 l:;:ETUF~:N
280 LClCATE6.0:PRINTMSCMT>;TAB<25>;YR
290 PRINT:C~1 . .
:::;/)0 B$ ( B) :::::1~·i$ ( B) +C$+" 1 8 l '.-5 22":: DT::::
29: DD$:=" '.29"
31 O GOE}UB!7:i20 320 GOSl.JB~:i40
330 IF C>7 THEN GOTO 420
:;;.40 B$ !Et):::{~$ <B> +[:'$.+" 2 9 1.6 · 23": DT="' :::;;o: DD$=" :::::o"
350 GOSUB520:GOSUB540
~.::;60 B$<B>=P1$(B)+C$+11 3 10 17 :?4":DT=
:~;1: DD$::::" ::::111
370 GOSUB520:GOSUB540
:::::so B$ !B) =P1$ <B> +C$+" 4 1 l 18 25" ~ GOS
UB~540
::-:~90 fl$(B)=?V:t(B)+C$+" ~s 12 19 :.?6":Gm:;
LJB540
400 B$ ( D) :::f.;$ < D) +Cii+ 11 b l ::;:; 20 27 11 : GOEì UB!'540
41
o
D~f; O:~)~'"(-)$o:n
+C·:fi+ Il 7 14 2 l 2!3" : GOS LJB540420 FCJJ=.:I=1TD7:PFUNTTP1BC6)R:fi(J:)" ":PH
INT:F'PINT:MEXT
lJ.:30 C$== 11• 11 : S::::ASC ( I NKE\'~i+CHF:$ <O) )
10
440 J F"Eìc:: 1 OTHEl.,J'YR:::::YP· 1.: GOTO l é)O
450 IFS=9THENMT=MT+1:IFMT>12THENMT=1:YR=
YR~1:GOf0160ELSE160
4L,o I FEì::::: :I. :i. Tl··IENYh'.="-YF(t· l : GOTO l 60
470 IFS=8THENMT=MT-l:lFMT<1THENMT=12:YR=
YR-1:GOT0160ELBE160
·-:'.!HO ''
490 IFS=81 OR 8=113 THENCLS:END
500 JFS=BO OR 8=112 THEN580
:=:-i 1 O bClHJ,~.:30
520 IFDl CMTl>=DT THEN 8$CBJ=B$(Bl·~DD$
~'i>) RETUPN
~540 P:"""B+ 1 ~ C=;:;;C ., .. :!.
~.=.i~SO I FB >7THl::J\!Bc-:: 1. ~ C$::::: 11 '."'160 PETUn1··J
~Y/'O F~:EM
~=:iElO F'.EM HTP1MPP1
~:.·:;-o HFr·1
,<.oo UPFl'J Il(} Il • :n 1 • 111....1=-RT :: Il 610 FOR Y=O TO 24
Il
{::.::?1:)
f.:.)~:;()
h40
6~50 é)é:,f)
FCìR >>==O TCl ~=;;9
PRINT#l.CHRS<SCREENCX.Y>>=
NEXT X . . .
~·IFXT \'
Cl ... DSE :: GOTO :i. ~so
I EFFETTI GRAFICI I
Una delle applicazioni piu' interessanti dell'elaboratore e' cer- tamente la "computer-Art", ossia la generazione di effetti grafici
spettacolari, con il computer. .
In questi ultimi tempi possiamo osservare in televisione, sulle riviste specializzate e al cinema, delle sigle e scenari fanta- scientifici, realizzati completamente da computer, in cui effetti di digitalizzazione d'immagine e animazioni tridimensionali, accompagnano trattazioni di argomenti scientifici e non. Poten- ti calcolatori sono persino in grado di creare paesaggi reali- stici utilizzando la geometria dei frattali, una nuova scienza che inquadra, in ottica matematica, le forme apparentemente casuali e indescrivibili della natura. Per risolvere in scala piu' ridotta, l'esigenza di dimostrare le notevoli capacita' grafiche del PC 128, abbiamo creato questo programma, che genera su schermo effetti di vario tipo.
Il programma potra' essere usato cosi' com'e' a scopo dimo- strativo, oppure per studiare il funzionamento dei comandi gra- fici Basic.
Dal listato, inoltre, potranno essere tratte routine grafiche per vi- vacizzare i vostri programmi.
Commento alle linee del programma
12
70
carica in "PI" la costante pi-greco 30-190
primo effetto grafico 210-290
secondo effetto grafico 310-400
terzo effetto grafico 420-530
quarto effetto grafico 550-660
quinto effetto grafico 680-770
sesto effetto grafico 790-880
settimo effetto grafico 900-1060
ottavo effetto grafico 1070-1200
nono effetto grafico 1210-1340
decimo effetto grafico 1370-1400
subroutine cancellazione
10 REM
20 REM 30 REM 40 REM 50 REM 60 REM
*******************
i
*
*
EFFETTI GRAFICI t' *
*******************
70 PI=3.1416
80 REM 1
90 C2=1:C1=5 100 GOSLJB 1360
110 FOR R%=90 TO 10 STEP -20 120 C%=RND<1>*15
130 FOR 1%=0 TO 360 STEP 5 140 A=<<I%-R%/10>*2*PI/360) 150 X%=CR%*CDS<A>>*3!4+128 160 Y%=R%*SIN(A)+96
170 LINE <128.96>-<X%.Y%>.C%
180 NEXT . . .
190 NEXT 200 REM 2 210 C2=1:C1=5 220 GOSUB 1360
230 FOR 1%=0 TO 360 STEP 5 240 C%=RNDC1>*15
250 A=<CI%-R%/10)*2*Pl/360) 260 X%=(90*COS<A>>*314+128 270 Y%=90*SIN<A)+96
280 BOX <12B.96>-<X%.Y%>.C%
290 NEXT . . .
300 REM 3 310 320
330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570
C2=15
GOSUB 1360 R=10
FOR 1%=1 TO 300
X%=RND<1>*C255-2tR>+R Y%=RNDC1>t(191-2*R>+R C%=RNDC1>*15
CIRCLECX%.Y%>.R.C%
PAINT<X%.V%>.t%·
NEXT . . REM 4
C1=15 C2=0
GOSUB 1360
FOR 8%=1 TO 2000 C%=RND<1>*15 X%=RNDC1>*128 Y%=RNDC1>*96
PSETC128-X%.96-Y%1.C%
PSETC128+X%~96+Y%)~C%
PSETC128+X%~96-Y%l~C%
PSETC128-X%~96+Y%>~C%
NEXT . .
REM 5 C1=15 C1=1
GOSUB 1360
14
~~;j8()
'."590 600 <S :t ()
6~,;·~c>
\':)-~)\}
640 /.i::-····
.. :) ,,J•._J
~'J{"J() (~)'?()
bBO é:~·~()
700 710 7?0 ·731:) /40
FOH I:~::: l TO :;-;oo
X :=RND ( 1 )
*
'.2~.'i:'iV:=RND ( 1)
*
191Z :::RND ( 1 ) ~C::30
X X ===RND ( 1 ) li< l ~.:.
YY=RND ( 1) #.2:+:P I Z Z=F;:ND ( l) *2::t.P I
CIRCLE<X,Y>Z,2,XX;YY,ZZ t,1E: X T
F:El'1 6 C2:::f'::,
GCJSUB :t :::.60
FOR D>=1 TD 250 Xl =RND ( 1) :!<:2~'.'i!S
X2=RND ( 1) *z.=;:::·.;
Y j =RND ( :t ) :t. ~ 9 l Y2:::PND ( l ,.. ~, 1 9 l 7:"'i0 C::::F::f'·.ll.1 ' 1. )
*
:l ~.~/60 :r::ox (Xl" V l) ···· ( X2. Y:2) • C::
77( NEXT . . .
780 PEM l
790 C?=B
800 GO SUB 1 :3(:.J)
810 FOR 1%=1 TO ?50 820 X1=RND<1>*255 830 X2=RND<1>*255 840 Yl=RND<1>*191 850 Y2=RND<1>*191 BbO C==PND ( 1)
*
15870 BOYF'Xl Yl>-lX? Y?l C
8BO NE~XT' . ' . . . .... , ... :•
B90 REM 8
1?00 C1==l5 9 J. O C:'.?c"::(I
'·?:20 GOSUEc l :::.60
930 FOR 8%=1 TO 2000 940 C~::.":RND ( l )
*
l 5950 COl...Of~ e~.;.
960 xx~INT(RND<1>*39)
970 Y%=INT<RND<1>*24)
<;)so L.OCPrTEX~.;.. Y~·~
990 PF:::!:NT "#it 1000 LOCATE X:-~. y~.;,
:l.010 PRINT"#".
1020 L.OCATE::o~. ·y~~
:l o:::;.o F'F: INT "#;, 1040 L..DCf.nEc~. y~.;, 10~50 PF:INT"#".
1060 NEXT
:1070 REM ci 1080 C2=1 1 090 X 1::::128 1100 Y1=96
11 l O GOSUB 1 :360
1120 FOR 1%=1 TO 300 1130 X=RNDC1>*255 1140 Y=RND<1>*191
l. 3:2() 1 :;::::;o l ~:40
l ::~;~::.:_,()
1. ::::;r:::,()
C>:::F:ND ( 1 ) :t 1 '.'."i
LJNE <X,Y)-IX1,Y1l,C
Xl:=<;\
...,. .. J.:::y NFXT
PEM :I.O
RFM
Cl"'-'l~';
e:::~·
.. ::::::
:I.GD'.3UD :! :::::(::.0 FUF: '/:=(i TU :I 9 :L C>=F~:ND ( l )
*
J ~.:;~~~~<O,YJ-(255,YJ,C FTlH E:::: :L TU l 2
FOR X=O TO 255 STEP 8
C:::::f~:ND ( l l *-l :.)
I J N1:: i Y +i::· ;··, ì ···· > Y +F 1 q 1 ì C ,:.;i E:· X
T ·. ... . ... ' · .. • - . .. . ... ' ' . , ,
hll:~X T UCITO :I. O
F~EM
BUSINESS GRAPHIC
Prendere una decisione, richiede sempre una attenta valuta- zione dei dati reali, al fine di poter calcolare, soppesare e pre- vedere con cognizione, in un qualsiasi campo. Benche' possa sembrare possibile ridurre qualsiasi decisione ad una serie di operazioni eseguibili con un computer, (perlomeno nei casi piu' semplici) nessuna macchina puo' pienamente sostituire l'elemento umano.
Il computer, comunque, puo' esserci molto utile nell'esposizio- ne dei dati, aiutandoci in qualsiasi decisione. Il programma di queste pagine, permette di visualizzare un grafico a barre di dodici dati mensili, rappresentanti qualsiasi tipo di dati numeri- ci: spese, introiti, ecc. La scala di rappresentazione e' scelta automaticamente in funzione del dato di valore piu' elevato in- serito. Un menu consente di inserire e stampare sia l'elenco dei dati che la rappresentazione grafica finale.
Commento alle linee del programma
18
90
prepara i vettori N(), K(), M$() 100
carica in M$() i mesi 130-180
fase di immissione dati 190
pone in K(I) il valore relativo a ciascun dato 220-290
menu e selezione 330-410
visualizzazione dati 440-520
stampa dei dati 540-620
visualizzazione del grafico 650-680
stampa grafico 730
dati intestazioni
10 REM
**********************
20 REM
* *
30 REM
*
BUSINESS GRAPHIC*
40 REM
* *
50 REM 60 F:EM
**********************
70 F:F1··1I
80 SCREEN 1.0,0:CLS
90 CLEAR 50ù:bIM NC12>:DIM KC12>:DIM MS(
:i:~)
100 FOR 1=1 TO 12:READ M$(l):NEX1 l 1 O REM
120 F:EM
1 :-::;n L.OC?HE 9 ~o: PF: :r NT Il cm~: J CP1MFl'-.l"TO DE I Dr~
TI"
140 PR I NT: F'F: I NT
150 MA=O:FOR I=l TO 12
l60 PF:INT "D<:Hnnd i dati d:i "~M~;(J)
170 INPUT N<I>:IF <N<I>>>MA tHEN MA=N<I>
180 NEXT
190 FOR 1=1 TO 12:K(l)=C160*N<l)l/MA:NEX T
200 REM
210 !:;:FM :220 FL,,::O
230 SCREEN 2.0,0~CLS
,..,+- ····1 ,-, I 'WAIF. '"3 ·~ Pr"HJT "!""! FIJfT ClP7 IntlT
~;J. (J o l::;\~ :_ ·-·'·., -·· ·:; .~· ~ ~:::: ~ Yt, • .. ~~~ "'' .. : •• ' .. 1 . .J. H . : I. .• • -:) \~' ·:~.
: UJLt··I I E: fa. 4: F· E .rn r ###### J#~~·##### : L.L LH TE 8. l O: PI:~ l NT "l .. 'v1EDERE I DATI"~ l ... CJCP1TF B, l'..?:Pt=::INT "2. STAMP?)PF I D?ffI":l ... OCP1TF 8 .'l4:PF:INT ''3. './EDEF:E IL Gr;:AFICO''~L.DCf')1TE
i3 ., l t.1 ~ 1--::·p I NT "4. ST P1MF'{..)F<F IL Gl:;:t:ìF I CO"
')•~·n ! ne:~ TF q 18" p1--;· I NT lll:::i F T 1\1 I p~-::· Il
:-..;'·~' .:: f,.M f--. ····' .' ... ·::: ;:.: !' · - l ' " i . \ .· . - Il~;;. H · : •• ' ' " "
~60 LuLAfE ~.~~~PPINl Premi 11 numero e
nrT i :-;pnndentÉ>"
:·.;no
F$=::JNKEY$:IF F$<"l" OP F~ti>"5" THEN '.,;"~7"0 280 290 300 :31 ()
ON 1./f'.)L \F$)
GOTO 230
F:EM
:•
.:::::::~o PEM
GOSUB
330 SCREEN O:COLOR 1,15:CLS
~~40 L.OC?HE l.2, ::::.: PPINl "DIHI CAF-UCP1TI"
350 PR I NT: PF-: I f.JT 360 FOR 1=1 TO 12
::~;70 PF: I NT M$ ( I ) = " "; N ( I ) 380 NEXT .
:~:80 LClCffTE 3,'.20:PF:INT "Pr·f?mi un ti)!:'.to pe r c::cint j_ nua1r·€:- 1'
400 I F I r\l~:::Ev~;'":: Il Il THEN -400 410 PETURN
4-20 1:;:EM 4:30 , 440 RFM
4!'."iO OPEN"rl" :tl:J "I PPT·"
460 ~RfNTi1:c~~S~lci>"
470 FOR 1=1 TO 12
-4HO PI~ I ~·H# l .. M+ ( T ;. , " " ; n i'. I ) 490 hlEXT
500 PRINT #1,CHRSll9)
'.j l O RETL.il::;:N: CL..D3E
~.'.'.i',?O F'.EM
~:) ::~; (> :•
'.'.'\40 r::E:M
550 SCREEN 7.4.4:CLS
~'51:/::0 i::~on U==:O lU. 1 c.;o::? ~3TET' :~:::,::: ! .... T MF \O" i' .i ··· ; 2'.'',
~5. O) ~ !\!E X T :: L.. I l\IF ( U ,, O) .. (O., 1 9 l ) ~ L.. Ti IF ( :· '':-:'''j. I• ì ( ~?5:.; .. :1. ~:l l ) .
!:_::_;·7(; !•
580 FDR E=S 10 225 STEP 20:FOR J=t ro 3:
I):::: (E ... ~=.;) /'.?O+ .l: LUCP1TE \E +h > / B :• ::?O+J ~ F'F:: I NT M
IDS<MSCDl,J,l>:NEXT J.E
!':)90 FOR I ;::'.':i. TD 22::'i '.:ìTi::T· :?O: S::::: (I -·~5) /'.'::'CH .! : FDF: lJ::::l TO 16: Lil\IF ( I+l.J., 160) ···· ( J+U., J6C• +: ·:
~3) ) " l : l\IE I< T U. I . . 600' J F FL:::: l lHEJ·l r;:ETur::r.1
h 1 O I F I l'-.JKF\'·:f:::" " T! .. IL'.:l\i h :I. O 620 i:::ETUP!\I
6::::.o h:EM
.b.l:J.() ~ .s~.5(> F~~E:t--1
660 FL=l:GOSUB 530 S70 t::cm:::ENPFi'.lNT 6Ei0 F:ETUF<l\I
/::_. r:;• O h: E M
}"()i)
20
BIORITMI
L'ansia o la paura che affliggono da sempre l'umanita', hanno spinto la ricerca anche negli ambiti pseudo-scientifici dell'astro- logia e dello studio di presunti ritmi o cicli biologici, detti biori- tmi. Secondo quest'ultima teoria, la nostra efficienza fisica, in- tellettiva ed emotiva, seguono dei cicli con periodicita' diversa, che si susseguono dal momento della nascita.
Senza entrare nel merito, della correttezza o meno, di una simi- le teoria, questo programma permette di calcolare e visualizza- re in grafici, i diversi andamenti nel mese dei tre ritmi princi- pali.
Il programma domanda in "input" la vostra data di nascita (an- no, mese, giorno separati da virgola) e, in seguito, l'anno e il mese di cui volete visualizzare i bioritmi (anno, mese separati da virgola).
Possedendo la stampante e' possibile ottenere grafici su carta aggiungendo le linee:
275 SCREENPRINT 345 SCREENPRINT 415 SCREENPRINT
Commento alle linee del programma
22
10
carica nella variabile "PI" la costante pi-greco 20-40
carica nel vettore DM() i giorni dei mesi 50-80
input dati 90-210
routine principale di calcolo 220-280
disegno grafico curva Fisica 290-350
disegno grafico curva Emotiva 360-420
disegno grafico curva Intellettiva 430-510
subroutine disegno quadrante 520-530
subroutine di attesa
1 REM
*******************
2 REM
* *
3 REM
*
BIORITMI*
4 REM
* *
5 REM
*******************
6 REM
10 PI=3.14159:CLS 20 DIMM \ 12)
30 FOR1=1T012:READM<Il~NEXT
40 DATA31,28,31,30,31,30,31,31,30,31,30,
::::: 1
::'jO pp IN
r
~ pi:;: I NT Il #i*##:J:l:*~#:~t#:J:t BI o~-::: I TM I #:J:HHt##i*##:J:I:"
60 PRINT
70 INP!.Jf''DAT/::i DI 1\11:)'.:JCITt:i (fiNl\iCl,MEE-ì E. E1 I ORND ! " ; Y l • Ml • D l
El!) J NPUT" PF:E\.! '.!:SI t:lN I ((i
NND,MESE)"::Y2.M2 90 !~\::::.M (Ml ) . --:O l
100 IF<Y1=Y2>AND<M1=M2>THENS=O 110 IFY1=Y2 THEN GOT0170
120 IFM1<>12THENFORI=M1+1T012:8=S+M(l>:N EXT 130 IF<Y1MOD4=0>AND<M1<=2)THENS=8+1
140 FDRI=Y1+1TOY2-1 .
150 IFY1MOD4<>0ANDM2>2THENS=S+1 160 NEXT
170 IF Y1=Y2 THEN N=Ml:ELSE N=1
. 180 IF N<M2 THEN FORI=N TO M2-1:S=S+MCI>
:NEXT
190 IF Y2 MOD 4+0 AND M2>2 THEN S=S~l
2(H) E:::::M ( M2)
210 IF (Y2 MOD 4l=O AND M?=2 THEN E=E~l
220 CLS:F'F:INT:PF:H.fr"Pr·i:::~vi.sinn:i:"
'.?:30 PFUNT:F'F:JNT"{)1ridt::1mE>ntn dF·11a cur··'/E1 F
ISI C(1"
240 FOR TEM=1 TD lOOO:NEXT TEM
:::~~.)(> Cf._.~3:: FClF.'.D= :1. TC11::
260 PH=SINC((S+D-1>MOD23)/23*2*Pl) 270 Y=PHr.GOSUB430:NEXT
2!:10 f30SUB520: CLS
:~s·o pp I NT r. p1:< I NT "Pr-E•vi ~.;i on i~ "
:soo Pl:;:INT:PPINT''{.~ndiii•mPnt.c:i df·:·'lla cur-·viiii F
MOTI \lA"
310 FOR TEM=1 TO lOOO~NEXT TEM 320 CLS:FORD=1TOE
330 SE=SINC<<S+D-1>MOD28>!28*2*PI>
340 Y=SE=GOSUB430:NEXT :::;,50 GUSUB5::?0: CLS
:::;;.1::>0 pf;:INT:PF:INT''Pr-c~vi!:;jc;nj.: ''
~_:::70 PI:;: I NT: PH I NT" tw1di:•.1TH:~nt.o ch:~J l :=\ cti:···,·0·:l J
l\ITELLETT I \i(~''
380 FOR TEM=1 TO 1000:NEXT TEM 390 CLS:FDRD=lTOE
400 IT=SIN<<<S+D-1>MDD33)/33*2*Pil 410 Y=IT:GOSUB430:NEXT
420 UOUUB~'.'i:;;~o: END
24
<j. ··:~; (.)
.I.O
l"·.IF:x·)·
e u x ( ::::, :,-:: ,,
1u :; .... {
1:::*
.~,..
J •. =: .,., j ... , ; ' ) 1 il. . .. '.·,;_:r.; __ :·_.'. .. · •• ·.,:,_.,:,,· .. ·,·.·.·.·.~_~;-.. ~.·~···.·.·.·.~.· .•. 1·.·.=.·.• . . · .. ,·,'.:,·~
LI !··IF \::~:H., 90 ·, • - _ --
r:::r::: n .. n:c.:i 1 ·
T r: T t·!i<F\-:f:;::=:" I l T! !F:n ~.<?i) h'.E:TUFl'J
DIAGRAMMI
Molte delle grandezze fisiche quali: la temperatura, la pressio- ne atmosferica, ecc, come in altro campo: gli andamenti del cambio con le monete estere, i valori delle azioni ecc, richie- dono per essere valutati utilmente, di un particolare sistema di rappresentazione chiamato diagramma.
Nella sua presentazione piu' semplice, esso e' costituito da una spezzata in un sistema di assi cartesiani, dove in oriz- zontale (sull'asse delle ascisse) si valuta il numero delle misu- razioni in un dato intervallo di tempo, e in verticale (sull'asse delle ordinate) il valore effettivo della grandezza in osserva- zione.
Con una rapida occhiata ad un diagramma, e' immediatamen- te valutabile qualsiasi variazione tendenziale, al di fuori delle normali variazioni dovute ai cicli giornalieri, errori di lettura dei dati ecc. Con il programma "Diagrammi", potrete ottenere su vi- deo un preciso diagramma capace di contenere fino a 319 dati numerici. Il computer effettua automaticamente sia il calcolo della scala di rappresentazione verticale, in base al massimo valore introdotto, che quella orizzontale, in base al numero dei dati caricati.
L'unica operazione necessaria alla creazione del diagramma si riduce quindi alla sola immissione dei dati, siano essi valori di temperatura, che gli alterni andamenti del dollaro, ecc.
Commento alle linee del programma
70
prepara la matrice contenente i dati 220
immissione numero dati 260-300
immissione dei dati e ricerca del maggiore (K) 380
calcolo della scala orizzontale 390-460
disegno diagramma 470-480
pausa e restart
26
J C• F:Fl·1I
* * *
;t* * *
:+: 'f* *
:+: ;t*::li
20 REM
*
t30 REM
*
DIAGRAMMI t40 prM
* *
50 REM
***************
hO PE:M
-:::·o nr1..,i N r::31 (:;i)
Bo scnEEt"J 4. 7. :.' 70 CL .. ~::; . .
J C•O L.OCP:TE l 4 ., ~.'5
:! :l. O PF: I !\IT 11 DI /.::iGFU·1!·1IM I "
l :::~o L.OCP1TE l 4. 6
:I :~;o PF;: :;: NT "#tH~##~.t###"
J..q.() LOc,:::1TE ::'i.20
:l ~:5c> r::·F~ :r r~JT ,, f::·F;:Ei-?·i 1 Llt· .. t .. rPff;·rcJ t='t:r:~ c:Cll\l·r :r 1\1t1Ar;:E
I l
t <S() F'l....f~-~\/ Il !)(JF:~i::::!'"1 I ti
1. 70 I F I r·ll<E"y"t;=::: 11 11 THEN l 70 1 HO r-::i:.:1·-·1
190 nFM 20(• CL~~;
210 !....OCP1TE o.?
220 INPUT "Ot~.ti:\nt.i dat.:i vucd. C:i:Hr·1 c:arf:? ? ( m;:,;: :~; l 9) 11 ; T
'..?:::~:o IF T<=(i OR T>:::qc;> THEN PL.?~V "DOMIF<E":
FìiJTO 200 240 T="INT (T)
:~~ ~:.:~ () J< ::: (i
'?60 FOR I=1 TD T
270 F'F:INT: PPINT "Dato 11 ; I; 11
'..::'.80 INPUT 1\1 ( I )
290 IF N<I>>K THEN K=NCI>
::;.uo NEXT I
310 PRINT:PRINT:PRINT
Il •
'
T~~O F'HINT "PREMI UN TM3TO PEF~ CClN"T INUP1F:E
I l
:::;.:50 I F I t\ll<E--Y'·:f;::o:: 11 11 THEN 3::')0
::::AO F:EM :::;. '.~i O l:;:E M
::;bo SCREEN 7, O, O
S?O CL.!:ì
:~;130 [)::::3:~~0/ CT··-· l)
:::;.:;io FOR I:::: 1 TO T
400 IF K<>O THEN Y<I>=INT<<190/K>*N<I>>
ELSE Y(J)::=O 410 NEXT I
420 FOR 1=1 TO T-1
430 LINE <<I-l>*D,190-Y<I>>-<I*D,190-Y(
I+ 1 ) )
440 NEXT I
450 PAINT (1,191>.6
460 PLAY "DQj!:::EMI 11 •
470 IF INKEY$:::"" THEf\I 470
4BO RUN
GRAFIC03D
Il PC 128 possiede ottime capacita' grafiche, in particolare so- no gestibili due modi principali: il primo (disponibile all'accen- sione) consente una risoluzione grafica di 320x200 punti con possibilita' di gestire la visualizzazione del colore, il secondo attivabile con il comando CONSOLE,,,, 1 permette di visualiz- zare grafica con 640x200 punti di risoluzione. Il programma presentato e' un esempio di grafica tridimensionale, che potra' girare utilmente sia nel modo standard, che in quello 640x200 pixel.
Nel primo caso, dopo il RUN, apparira' lentamente una figura tridimensionale al centro dello schermo, nel secondo (bat- tendo CONSOLE,,,, 1: RUN) apparira' la stessa figura con riso- luzione doppia. Nel secondo caso, la figura risultera' molto piu' precisa nel disegno, in quanto i pixel che la compongono hanno dimensioni minori, ma molto allungata, poiche' la risolu- zione verticale e' uguale alla precedente.
Commento alle linee del programma
30
80
fissa i colori (nel modo grafico 640x200 non ha effetto)
110
inizio ciclo principale 120
ciclo secondario 130-140
calcolo valore z 170
disegno parte sinistra della figura 180
disegno parte destra della figura 210-220
fine disegno e pausa
l ()
~2 ~.)
::.<)
4(>
~j(:1 é)()
·7i.)
F:EM ni:::1·'!
PE!"i i:;:EM r:;:EM REM F:EM
****************
* *
*
GF:m-:· r cn::::.n
::ii* *****i~********** *
HO SC:i:;:EEH7 ., C1. O (;;e, c:t....~J · ·
100 FOR X%=-l00 TO O l lo Er\,o:::(i
120 V%=(SQR(10000-X%*X%l/10>*10 130 FOR Y%=V% TO -V% STEP -10
140 Z%=C80+30*CDSC (8QRCABSCX%*X%+Y%*Y%>>
) / l 2 ) -·· • 7 ;j('·(i·: )
150 IF Z%<B% THEN 190
160 B~~===z·;~
170 PSET<X%+130,176-Z%>
180 PSET<125-X%~176-Z%>
190 NEXT .
200 NEXT
210 F'LAY ''DOPE''
220 I F H·~l-:::EY $:::" " THEl\I 220
PROGRAMMATORE DI CARATTERI
GRAFICI
Il BASIC del PC 128, ci permette l'uso di numerosi caratteri gra- fici programmabili in modo molto pratico e semplice. Con
"DEFGR$= " noi possiamo definire un carattere grafico con qualsiasi disegno realizzato su di un quadrato di 8x8 pixel. La corrispondenza tra gli 8 numeri del comando, rappresentano ciascuno 8 pixel (dall'alto in basso) del carattere. Il manuale accenna chiaramente a come ottenere, a partire da un qualsia- si disegno, dapprima il numero binario e poi gli otto numeri de- cimali rappresentanti la forma del carattere, ciononostante tale procedura non e' molto semplice ne' comoda. Con questo pro- gramma, potrete facilmente disegnare su schermo la forma del carattere grafico e ottenere immediatamente gli otto numeri che lo codificano.
Dopo il RUN, appare una scacchiera di 64 caselle in cui potre- te muovere il cursore usando i tasti di direzione. Premendo contemporaneamente la barra spazio lascerete occupata la ca- sella con un asterisco; viceversa (se la casella risulta gia' oc- cupata) tornera' ad essere vuota. Disegnando la figura deside- rata sulla scacchiera, e premendo "ENTER", si otterra' la visua- lizzazione dei valori di codifica, premendo F1 , i dati verranno ri- portati su stampante.
Commento alle linee del programma
70prepara una matrice 8x8 e il vettore contenente i dati finali
80-170
visualizzazione dei comandi principali 120-300
controllo della tastiera 330-360
subroutine attesa 370-440
subroutine movimento coordinate del cursore 450-470
subroutine set-reset quadrato del cursore 480-490
calcolo dei codici e visualizzazione 520-530
calcolo dei codici e stampa 540-580
disegno del quadrato di lavoro
34
lU REM
***********************
20 REM
* *
30 REM
*
PROGRAMMATORE GR$*
40 REM
* *
50 REM 60 REM
***********************
70 DIMW(7.7).S(7) 80 SCREEN1.7~7:CLS 90 G!J'.::ìUff32!) .
1 (H) \.1$::: ":j:!::l:J:#"
1.10 UJCATE1.:''.i:PRil\IT":+:t** L.:ista CDl"'i?'.iNDI :t:
***Il .
120 LClCf'.HE t ' 7: PF: I NT "cup~;cm I +'.~ìPACE' d :i !:;!,~•;)
n.:,:.. "
:i::;;o p1:::: I NT" i::::ETUF:hl., e al e o J a i v Ed ur-:i "
140 PFUNT" Fl' E:.tampa"
l~'.'iO PF:INT" F2. fint::::·"
:l t:)O GDSUK:.30 .
:! 70 GOSLJB3:::;o l E3() t:l...S
J c;io GOtìUB320
200 pr-;: I h!T: PF: I NT: PF: I NT "Us;c:, i t ,::1 ~,; t. :i e: u1·· •;:;cw i e l.:':ì b;:(r-r·a":GOSUB 540
2 :! O I X::: l : I \1:::::7
220 LDCATEIX.IY:GOSUB340
230 IFA=13TH~NGOSUB480:GOT0220
240 IFA=llTHENGOSUB370:GOT0220
250 IFA=10THENGOSUB390:GOT0220
260 IFA=8THENGOSUB410~GOT0220
270 IFA=9THENGOSUB430:GOT0220
280 IFA=32THENGOSUB450:GOTD220
290 IFA=193THENGOSUB520:GOT0220
300 IFA=194THENSCREENO:CLS~END
::; 1 O GOTU220
3?0 CL~3: I.... DC ATE 1. O: PF: I NT" 12B ED I TOR C1::.)Hf.:1T TEI:::: I GF:1'.:1F ICI " : PF: I NT: PFTURN
:::;;:::;;o LIJC~iTE'.?.2'.2:PF-:INT''PPr c:ominc:iarc· pr·r.~m
i 1 a l:iar-r-a 5.p.::1;:::'. i o"
340 frf;="INKE"l$: IFf~'»~-:::" 11THEN:::;:40
~~;50 ~):::."ASC ( ?%$) :360 1:;:ETUF:l\I
370 IY=IY-2:IFIY<7THENIY=21 380 F:ETUl:;:l\I
390 IY=IY+2:IFIY>21THENIY=7 400 F:FTUHN
410 IX=IX-2:IFIX<1THENIX=15 420 RETURN
430 IX=IX+2:IFIX>15THENIX=l 4·•1-0 F~ETUF:N
450 X=INT(IX/2)~Y=INT<IY/2)-3:IFW(X.Y>=O
THEN470 .
460 l•J (X. Y >=O: LDCATE I X. I Y = PR I NT" ":: : PETI.JR
N . . .
470 l1J (X. Y) :::::1: LOCf.HEI X, IY: COLOF: 2: PRINT"
*
" :; : COLOR O: F:ETUHN .
490 X=17:FOF:L=OT07:S(L)=O:FORL1=0T07:N~7
-L1:S(L)=S(L)+W(L1,L>*2AN:NEXTLl:V=L*2+7
:fÌ';;
~.::.~ ··..r
c..
!\i i::::x ·r (::,
''''iF'.') FE T! ... !FN
36
INDOVINA LA PAROLA
Un gioco molto semplice e divertente, che consiste nell'indovi- nare una parola "pensata" dal computer di cui conoscete sol- tanto il numero dei caratteri.
Una routine di estrazione casuale, utilizzante la funzione RND, sceglie la parola tra le 60 disponibili, visualizzando una se- quenza di trattini che rappresentano i caratteri d~ indovinare.
Premendo un tasto sulla tastiera, assisteremo alla comparsa di un carattere sulla riga di trattini, nella posizione effettivamen- te occupata all'interno della parola da indovinare. Se invece ta- le carattere non e' contenuto nella parola, apparira', scartato, su di una piattaforma, spostando di una posizione il sasso di colore rosso.
Piu' risulteranno tentativi a vuoto e piu' il sasso verra' spostato verso il piano inclinato, fino alla caduta e alla rivelazione della parola non indovinata. Sostituendo i numeri 60 alle linee 120, 620 e 630, con valori superiori, potrete aumentare anche note- volmente il numero di parole disponibili, owiamente aggiun- gendole in linee "data" oltre la 101 O.
Commento alle linee del programma
38
90-100
rende casuale l'inizio della sequenza ANO 120
estrazione del numero-della parola 130
pone in W$ la parola estratta 170
controlla se la parola battuta e' corretta 180
controlla se si sono superati i 1 O tentativi errati 200-250
routine partita persa 260-390
routine partita vinta 400-580
disegno schermo 590-640
caricamento vettore parole 650-780
subroutine sasso caduto 790-930
subroutine input caratteri 940-1010
dati parole
10 REM
**********************
20 REM
*
I30 REM
*
INDOVINA LA PAROLA*
40 REM
* *
50 REM
**********************
60 F~EM
70 i:::EM
9;-1 CL..Et1R 2000
90 PPINT"PPEMI UN n.;~:;nJ .... I l
1 CH":i I F I Nl<E\ .. $==" "THEl\I A=-'=R!\ID ( l ) ~ GOTO 100
11 O GDf.ìUB61 O
120 W=INT<PND<1>*60)+1
1 :::;:o l>H.;==D$ (l.J)
140 GOSUB420 1 '.".)0 DDSUB81 O 160 Fl....P1G=-"O
170 IFTS=WSTHENGDT0280
180 IFLEN(G$)=10THENGOTD220
:! 90 GOTO 1 ~:'iO
200 REM PARTITA PERSA
210 REM
220 GD~;UB670
Z'.:.O COLOFC: LOCATE 1 • l 9: PR INT "L.;:1 pi:."lt,..ol a Pt"
a "
240 L..OCATE1.20:PRINTWS 250 GDTff!.80.
260 REM PARTITA VINTA 270 F::EM
:;;:so 1:::EM
'.?90 I FG$=" "THENGDT0:360 300 FORN=LEN<GS>TOlSTEP-1 310 GS=RIGHTSCGS.N-1>
320 M$=" DDF:EDOF:EDDREM IMI MI": Pl ... l."i'{!"I'.~
:::;;:30 GC!Sl..JB900: F·F~: I NT" "
340 FORW=1T0250:NEXTW 350 NEXTN
:::;;60 L.CJCf."ifE 14, :~:;: PF: I l\IT "CClMPI .... J MENTI "
:~:70 L.DCATE l 4 ~ 4 ~ PF: I r\IT 11 -··----··--··-·-··-···-····-·-- 11
:~:so .,:::;$==:i: NKEY ~fi: 1FA$:::::1' 1' THEN:38o ::::s·o BEEF':: GCJTD 120
400 PEM SCHEF:MD 410 F::EM
420 SCREEN2.o.o~CLS '+30 COLJJf;'. :::;; ! CLS
440 L..ClUìTE 12, O: PnINT" INDOVINA LA FAl=<OU-~
":COLOR 4 .
450 A·$== 11######t~####=!:t###H####11
460 LOCATE11,1:PRINTAS
4 70 LCJCA.TE3. "'7: CCJUJF: l : Pr-i I NT ";J:l"
480 BOXFC128,100>-C208,160),4 490 L.INEC120~88)-(128,Ì00>.4
500 LINEC216~88)-(208~100}~4
510 LINEC0,65>-C104,65),14.
520LINE-StEPC20.28).14.
53() c:C)L~(JF: 11: l._ClcA·rE 1 ~ 1 () ~ F1F: I f\ff Il F:·AF~CtL.A: ,_,.Il
'.:i-40L.DCATE5,14:T$=1111:G$'-'="11 550 COLOR 5~FORN=1TOLENCWS>
560 PF: I NT" ···· 11 < : T!f;:::T$+ 11 "
570 NEXTN .
::'..iBO 1::::ETUPN
590 REM INIZIALIZZAZIONE 6C10 REM
h 1 O REST!JF:E960 h20 DIMD$ ((SO)
630 FORN=lT060:READDt<N>:NEXTN
éllj.(i HFTURI\~
6 ~~;o RE 1"·1
e{', m nr1
h6() 1=::EM
670 FDF'N:= 1 ::::.TO :! D
680 COLOR 1:LOCATEN.N-6 6':,il() i:::·;:;: I l\IT 11 ;il" . 700 FOR A=l TD 100:NEXTA
71
o
CDLDFo:
LDC?YTFN 'I N··6: Pn I1·rr
I l I l720 NEXTN .
1~v PSFT(20*8.13*B>:LINE-STEP<-8.0),4 740 FORI=1T015:J=-RND<1>*20:K=RND<1)*40-
n::~;o I F~ {:r~:;< Il (:i Il rn=a:1<f.; > I l l. I l THENGiJTDEl 1. o 840 FLAG=O:COLOR 9
850 FORN=lTDLEN<WS>
860 IFMIDS<WS.N,1>=ASTHENLOCATEN+4 RINTAS:MIDS<Tt.N.l>=AS:FLAG=l
870 NEXTN . .
!380 I FFL.P1G"-'" l. THENPLP1Y Il DDDD 11 ~ RETUF;:hl 8 <ji
o
G'$ :=: p, ·:j; +!:i$910 LOCATE3.7:COLOR 13
920 D'ii==G-$: pf:( I l\ITO$:; : crn .. OR l :: F'F'. I l\!T Il ;;j) Il
930 RETURN .
940 HE~M DP1TP1
?:'.!O FEl"·1
!I i::;,: F'
960 DATA ICONA. ACUTD.AVVERBID,ALBERO.AL
TERD.AMERICA.FACILE.CERVELLO.CASSETTA~DI
sco . . . . .
970 DATA VIZIO.MELONE.DPERA.PITONE.GIRAF FA,VOLANTE.PIAlTO.ENERG!A,RlPOSO,SOSPIRO 98() :Oi:::iT?'1 NE:GCJZ I O. !JMBRELl .... O ~ CP1l'"I ICI t1 •1 EìC(iRF'E'..
.ANIMALE.COMPUTER,MONITOR~PERTICA~SCUOLA
~BRADIPO. . . .
990 DATA CIPOLLA.ESTREMO.FOSFORO.FORMICA , Gtil.L. I NPr" Ci I U:O I :Z I (J. e; I UD I et, T i~1E1CPr, F'OPDLD. F~
AMAZZA . . . . .
1000 DATA CANTINA.SATELLITE.SCIROCCD.SAP
ONE.CHITARRA,COMMtDIA.COMPilO,MUSICA~CAS
SETTD.CAFRELLD . . .
40
1010 DATA PIGIAMA.QUADRD.CDRNICE,OROLOGI O.ANTENNA,SEGGIOLA.TAPPETO.POLTRONA.CEST
IND,GIARDINO . . .
INTERVISTA
Sovente, forse a causa della diffusa cinematografia fantascien- tifica, siamo portati ad immaginare il computer come ad una fa- volosa macchina "pensante", capace, all'occorrenza, di ri- sponderci a tono come fosse un vero interlocutore umano. Chi ha studiato realmente questo problema, cioe' la comprensione del linguaggio naturale da parte di un computer e le applicazio- ni avanzate dell'Intelligenza Artificiale, sa come sia praticamen- te impossibile creare un computer capace di interpretare e ri- spondere in modo sensato e pertinente ad una qualsiasi do- manda. Forse anche chi legge e' capace di scrivere un pro- gramma che risponda alla domanda: <<Ouanto fa 1 Ox8?>> e ad altre similari.
Molto piu' difficile, o addirittura impossibile, far rispondere i computer su argomenti piu' vasti: <<Scalda molto la CPU?>>,
<<Ouale marca di cassette preferisci?>> oppure <<Chi era Na- poleone?>>. Rimanendo in un ambito molto ristretto, o addirit- tura dove l'ambiguita' e' permessa, potremo creare ottimi pro- grammi pseudo-intelligenti capaci di predirci il futuro oppure di comporre poesie, ecc. Il programma "Intervista" fornisce delle risposte abbastanza pertinenti ad una qualsiasi vostra doman- da su argomenti politico-sociali. Il segreto e' semplice: le rispo- ste sono create combinando casualmente soggetti, verbi e complementi, in modo grammaticalmente logico, per formare una infinita' di frasi di significato ambiguo.
Commento alle linee del programma
42
70-80
rende casuale l'inizio della sequenza RND 130
INPUT {la domanda e' puramente opzionale) 140-190
estrae 7 sequenze casualmente dalle aree data corrispondenti
220-310
area dati n.1 330-420
area dati n.2 440-530
area dati n.3 550-640
area dati n.4 660-750
area dati n.5 770-860
area dati n.6 880-970
area dati