Inizializzazione 100-210
Loop opzione 470-750
Routine principale opzione D 760-810
Routine load dati in memoria 830-880
Routine Save dati in memoria 890-960
Routine salto a programmi LM 970-1070
Lettura comando 1090-1150
Routine aggiunta zeri non significativi 1170-1250
Routine controllo input e generazione codice "EF"
1260-1330
Routine visualizzazione e stampa dati
68
. . !<Er-! :(<
*
l *;i< :l<: ;:;: ::i.::**: W* * *
t* * * ::\:: *
20 REM
*
t30 REM
*
MONITOR*
40 REM t
*
:·::.• ... ! r;:i::::1·.,1
* * * * *
;t: :t: ::t-:******i<*****
.SO HL!''!
/;::· :::)CF:FEN2.
o.
O: CL.~3~ DF'E:t·.J''U'' ., :1:~1.. ''LPPT:: I l HO PF;: T nT" l. PC :!. '.?tl MDN I TOF: . .*Il
,·-·,··;1· .. ·· ..
.. ::. ·-~· '·...'
~.? !:_~_; () 1·.-1 X ::::: ~;3
260 TP=2:GOSU8960
::??() H-'I ~:.:=HE X~!; < 1'.~ >
~.':.''. El() c::t Cl ~::~ l..J I3 l () E!() :·.? t/ () e: E1 :::: (;
300 TDS=LEFTS<H4$,2)
;:::; l O Ct3:"C~3·H./('.il .. ( ":~J··I ;, +TD$) T20 TD<~;:::=HIGllT'.i; <H-4-'li, 2)
::~:::;o Cb"=C:3+'./P1!... ( "t:H" :~·TD$)
::::40 I F PF::.<;;: THEN F'F'. I l\IT:f.t l ., H4'~:; " "~ FL.'.::;E: PF:
INT H4$-:;" "• . .
:::::~=.:se> c:·r:::::(> ·
::;t/) rn :::F'EF!< ( P1)
::~:70 C:::b::=C'.::ì+DT :3t30 DT'~==HEX'.!; ( DT)
::::;'-:~i:::> I F:· i._ E: t .... 1 ( I:J ·r ·:t• ) ::::: :t. ·r , ... ,E t\J 1::; ·r ·:f, ::~: ! • C> 11 +·I) ·r $
400 IF. PF=<~THEJ--J F'h:INr:!=l:l,DT$-~" "•El ... rn:· F'HI
~IoDI~;~>:i
THEN GOSUB1260~RETURN
420 A=A+1:CT=CT+1
430 IF CT<MX THEN360
440 i30SLJB l 260
t~ ~'"iO GUTCl 270
46() '
.4 ""?()
-W-30
490 TP=l:GOSUB960
~500 H4-$:::=HEX'.i; ((:1)
~:.; 1 o urn:;uB i oBo
!3'.:~:0 PF: I NT H4$ • " ";
!:.i::~;o CT==O .
~.'.'.i4C
970 980 AS=MIDS<CMS.3.4) 990 A:::=t...-'AL ( "t:H" +AS)
1000 IF TP=1TH~NRETURN
1010 BS=MIDS<CMS.8.4)
70 1100 1110 l 1 :20 11 :::::o 1140
l 1 ~~.)0
1160 1 l /O
ON LENCH4$) GOT011:1.0.1120.1130.1l40 H4$== ''000'' +H4$: RFTU!=~r-..i· . . H4<fi::-.:: 11 00" +H4$: RETUF:N
H4$=="0"+H4$: PETURN PETUF:M
'
1 1 E!O Cl<===HSC ( CK·$) l 190 EF::::::l
1200 JF<CK>=&H30 AND CK<=&H39>0R<CK>=&H4 1 AND CK<=&H46) THEN EF=O
1210 IF CK=&HD lHEN EF=2 1220 IF CK=&H8 THEN EF=3 1230 IF Cl<=&H1B THEN EF=4 1240 i:;:ETUl:;:N
12~5(> !'
1260
1.2/0 1280 l ;~<;:•()
:1.::::.00 l :31 o
i::::.20 132:0
CSS=RIGHTSCHEXS<CB>.2>
I F LEN < Cf3$) == l THEN . C!:ì$= "O" -t·CS·t.,
ON PF GOTO 1320.1330 PF;: I NT" : " ~ CS$: F:Eì'URN
F'RIMT:PE'iURN
PF-;: I NT# 1, ": "; C!:ì$: F:ETURM
CODIFICA
CRITTOGRAFICA
Non sempre si desidera che i dati trasmessi e registrati dal computer siano facilmente accessibili a tutti. In ambito profes-sionale, sono tantissimi i casi in cui e' necessario proteggere testi e dati con particolari chiavi di codice, in modo tale che, in seguito, solo chi conosce il codice possa utilizzare le informa-zioni.
Il programma "codifica crittografica", permette di crittografare una frase o un insieme di caratteri alfanumerici (massimo 255 caratteri) con una chiave scelta, costituita da una parola (es. il vostro nome), da una frase, ecc. Inizialmente il programma vi domanda la parola chiave da utilizzare per il processo di codi-fica o decodicodi-fica, successivamente un menu consente la scelta tra due differenti opzioni. La prima opzione, serve per introdur-re il testo da codificaintrodur-re battendolo su tastiera, mentintrodur-re la se-conda, serve per decodificare un messaggio precedentemente registrato come file sequenziale su cassetta.
Utilizzando l'opzione di battitura da tastiera, terminato l'inseri-mento con il tasto <ENT>, apparira' sullo schermo la frase codi-ficata che potrete salvare su nastro. E' chiaro che solo dispo-nendo della giusta parola chiave potrete rileggere correttamen-te i dati, ogni altro correttamen-tentativo produrra' una sequenza incomprensibile di caratteri.
Commento alle linee del programma
72
120-130
input della parola o frase-chiave 140-190
preparazione della maschera di codifica 210-270
menu principale 280-320
immissione testo 340-390
visualizza codifica 400-440
richiesta opzione registrazione o restart 450-610
caricamento da nastro e decodifica 630-690
scrittura su nastro del file crittografato 700-750
subroutine di decodifica 760-820
subroutine di codifica 830-920
subroutine di attesa 930-1020
subroutine di fine caricamento
10 REM
**************************
F'F:Il\IT ''2. Cat-·ic:<:1ment:.o da
r··E~qistr-at.c:1r-LOCi:nE 2. 1. O
Pi::::INT "FF·ase codi.ficat:a ~"
PF;: I NT: PI:;: I NT (.~$
74
I ANIMALI I
Il computer, nelle applicazioni di gestione su dati organizzati, esprime nel modo piu' lampante le potenzialita' delle funzioni di ricerca di dati. Nel programma, un piccolo data-base, conte-nente nome e caratteristiche salienti di alcuni animali rende possibile, malgrado la limitatezza dei dati disponibili un inte-ressante gioco-esempio.
Il programma permette al computer di indovinare il nome di un animale in base ad alcune caratteristiche da voi fornite, oppu-re il gioco inverso, in cui sarete voi ad indovinare l'animale
"pensato" dal computer. Il data-base di esempio, memorizzato nelle linee data numerate da 1000 in poi, contiene i record per ogni animale; l'ordine di memorizzazione e' il seguente:
nome animale, famiglia, carattere, dimensioni, modo di cammi-nare, domesticita', caratteristiche salienti, utilita' per l'uomo, modo di cibarsi, habitat, prestazioni.
Il numero presente nella posizione relativa a ciascuna caratte-ristica si riferisce all'elenco sito nelle linee comprese tra 890 e 980; in queste linee data sono elencate le alternative possibili per ciascuna posizione. Volendo espandere i dati disponibili, e' sufficiente inserire dalla linea 1070 in poi, linee data aggiun-tive nel formato prescritto, aggiornando il dato contenuto alla linea 990, con il numero totale degli "animali" presenti.
Commento alle linee del programma
76
60-70
inizializzazione casuale di RND 80
lettura numero caratteristiche 90
lettura numero record presenti 100-140
caricamento in AN$() e CA() 150-160
selezione menu 170-480
gestione I opzione 480-740
gestione Il opzione n0-860
subroutine menu dei record 870-990
dati caratteristiche 990-1060
dati record
10 REM
*****************
100 DIM AN$(QA>.CACQA,QC) 110 FOR J=1 TO ÙA:REAO ANS(J) 120 FOR K=l TO QC1 :::;o REl-m CJ~ ( ,J • K) 140 NEXT l<.J .
150 RESTOR~ 760:GOSUB 770:REM SUB/MENU' 160 RI=NR:CLS:ON RI GOTO 170,490 350 IF LENCCT$)+LEN<CNS>>70 THEN 410
:360 CT$=-.::CT·$+" • "+CN$
:)70 INPUT" SA I. DI F:E C!UP1LE r.1N I MALE E' "; P1P$
380 IF APS=ANS<AE> THEN 450 390 IF APS<>ANS<AE> THEN NT=NT+1 400 IF NT<OC THEN 190 450 CLS: PFUNT"BRAVO: H?H INDOVINATO"
460 PRINT"SI TRATT1~'./A PROPF:IO DEL.L'ANIMA LE ": f4N$ <AE)
78
610 IF NC<H><>CA(K~H> THEN AS<K>=O:GOTO 6:Jo
710 PRINT"ESH:ìTCINCI ":;FG:;" POSSIBILIHY' 1 "
= PRINT"SER\..'ONO MAGGIDFn. DETTAGLI.": FOR K
=1 TO 1000:NEXTK:CLS 720 NEXT ~1
730 PF: I NT "NESSUN AN I MALE FRA C!UEU ... I CHE IO CONOSCO CORRISPONDE ALLE CARATTER ISTICHE CHE MI HAI FORNITO"
740 FOR W=l TO 2000:NEXT W:GOTO 150 750 o
760 DATA 2. "TU INDOVINI L." f..WHMAL.E CHE PE NSO IO"."ID INDOVINO L'ANIMALE CHE PENSI
TU"."pèr scegliere: "
770 REM SUBROUTINE MENU'
890 DATA FAMIGLIA.7.MAMMIFERI.UCCELLI.RE TTILI.ANFIBI.PESCI.INSETTl.ALTRO . 900 DATA CARATTERE~5.GIOCHtRELLONE.MITE.
TIMIDO.PERICOLOSO.FEROCE . .
910 DATA DIMENSIONI.5.PICCDLISSIMO.PICCO LO.MEDIO.GRANDE.GRANDISSIMO .
920 DATA.COME CAMMINA.10.NUOTA.STRISCIA.
BIPEDE.QUADRUPEDE.VOLA.ESAPODO~VOLA E NU
OTA. CAMMINA E NUOTA.OtTOPODO.MOL.TE ZAMP
E . . .
930 DATA DOMESTICITA',3.SI,NO.ADDOMESTIC
ABILE . . . .
940 DATA CARhTTERISTICA FISICA SALIENTE,
s·. r ..
1L.~'~<3UNA. N1'."~SD LUNGO. COLLO LUNGO. GAMBE l.U~~HE.CDDA LUNGA.CORNA.PELLICCIA.FOLTA.V
ELENOSU.LINGUA P~ENSIL~ .
950 DATA UTILITA' PER UDM0,5,NESSUNA.POC A.COMMESTIBILE.MOLTO UTILE~DANNOSO . 9b0 DATA SI CIBA PREVALENTEMENTE DI,6.CA RNE.VEGETAL.I,AVANZI,ONNIVORO.CIBO ACOUAT
ICO~INSETTI . . .
970.DATA VIVE SOPRATTUTT0,2,DI GIORNO.DI
NOTTE . . .
980 DATA PRESTAZIONI NOTEVOLI.9,NESSUNA.
VDRACITA'.VELOCITA',SALTI L.UNGHI.FORZA.R ESISTENZA.ALLA FAME/SETE.OLFATTO' FINE.VI
STA ACUTA.VOCE . .
990 DP1TP1 '.!
1000 DATACANE,1.2,3,4,1"7.4,1,1,7 1010 DATATRDTA.5.3.~.1.2.l.3,5.l,3
1020 DATABALENA,l.4.5.l,1.l.2.5,l.1
1030 DATACAPRA,l.3,3,4,3.b,4,2.2.4 1040 DATARANA.4.3.2.8.2.8,3,5.2.4 1050 DrTnEI EFANTE. 1· ~· ~· 4· ~· ~-~· ~ 1 ~
• • -~1··-i:.:,:·- .... ' .. •• "":. ,!,!) ' ·~r •• ::. ,~.~ 1.J ~r ' .,,) , ..::. ~ ...::.L!' ..::. , , .... J
1 060 DA I AbAL.L 1 Nfi. :.:: . ... ::- ... :: ... ::·. 1 • l • 4. ·~. l • l 1070 DATALEONE1,?,3,4,5,6,7,~ . . .