home *** CD-ROM | disk | FTP | other *** search
-
-
-
- Questa è la descrizione del programma RPN,
- aggiornata alla revisione 1.00 del 31 gennaio 1990.
- MLO 900131
- ---------------------------------------------------------------------
-
-
- 1) Presentazione e storia
-
- RPN è un programma interattivo che permette di eseguire calcoli
- aritmetici, trigonometrici e statistici utilizzando tastiera e mouse
- di un personal computer Commodore Amiga, e simulando con esso il
- funzionamento di un calcolatore da tasca Hewlett-Packard. RPN è stato
- sviluppato originariamente in FORTRAN 77 per un HP21MX, poi
- trasportato su VAX, e implementato anche in BASIC su PC IBM prima di
- essere tradotto in C (Lattice C V5.04) per l'Amiga; il programma
- originale simulava un pocket computer HP-32, e nelle versioni
- successive si sono introdotte alcune peculiarità di modelli
- successivi, in particolare dell'HP-11C.
- Il funzionamento dei pocket computers Hewlett-Packard è fondato
- sulla notazione polacca inversa (RPN) introdotta da Lukasiewicz nel
- 1924, il cui principio fondamentale è: si dichiarano le variabili
- immediatamente prima delle funzioni che operano su di esse. La maggior
- parte delle calcolatrici da tasca segue quasta logica per il calcolo
- delle funzioni di una sola variabile: per estrarre una radice quadrata
- si introduce l'argomento e poi si preme il tasto appropriato. RPN non
- complica l'introduzione dei dati usando la notazione inversa per
- alcune funzioni e quella algebrica (che è più comoda per la scrittura
- su carta ma meno adatta per il calcolo) in altre; ma usa la logica
- inversa per tutte le funzioni di due variabili, comprese le 4
- operazioni elementari.
-
-
- 2) Primo contatto
-
- Mandato in esecuzione il programma (comando RPN da CLI, o
- doppio click sull'icona di RPN), si presentano sullo schermo due
- finestre: la prima contiene i "tasti" del calcolatore, da puntare e
- selezionare con il mouse; la seconda i 4 registri dello stack ed i 16
- registri di memoria. Sei di questi, da A ad F, servono per l'accumulo
- dei risultati parziali nei calcoli statistici (media e deviazione
- standard, interpolazione lineare); tutti sono comunque usabili
- dall'utente per conservarvi dei dati.
- L'introduzione dei valori numerici avviene con la tastiera, ed
- i caratteri introdotti compaiono nello "string gadget" con la scritta
- Input Field: questo si seleziona automaticamente premendo un tasto
- associabile ad un numero floating point (in notazione a virgola fissa
- o scientifica); è possibile correggere quanto è stato introdotto,
- perchè la traduzione dei caratteri in numero si fa solo o quando si
- deseleziona il gadget (premendo il tasto Return), o quando si
- seleziona un "tasto" od un'opzione dei menu a discesa. Quando questo
- avviene, il numero viene depositato nel registro X dello stack; e, se
- era stata scelta una operazione da eseguire sul numero appena
- introdotto, questa viene compiuta subito dopo.
-
-
-
- - 1 -
-
-
-
- Un'altra delle caratteristiche che rendono RPN comodo da usare
- è il trattamento degli errori: ogni volta che un'operazione di tipo
- aritmetico è vietata (per esempio si tenta di effettuare una divisione
- per zero) compare un requester che segnala l'errore ma nessun
- cambiamento è operato sui registri e sullo stack, per non danneggiare
- eventuali risultati parziali in essi contenuti; e anche quando,
- malauguratamente, una operazione sbagliata venisse effettuata,
- l'opzione Last X dei menu a discesa consentirebbe di riprendere
- l'ultimo dato usato e, compiendo l'operazione inversa, di ripristinare
- lo stato dello stack e dei registri.
-
-
- 3) Un esempio
-
- Vediamo ed esempio come si procede per il calcolo del valore di
-
-
- (Log(X) + 1) / 3.14:
-
- si introduce X, battendo le cifre una dopo l'altra;
-
- si seleziona con il mouse il gadget "Ln" (logaritmo natura-
- le): il risultato parziale Log(X) compare sullo schermo nel
- registro X;
-
- si introduce la costante 1 con la tastiera e si seleziona il
- gadget "+" (addizione): il risultato parziale Log(X)+1 com-
- pare sullo schermo;
-
- si introduce con la tastiera la costante 3.14 (o si usa il
- gadget "pi greco" per introdurre la costante matematica con
- 16 cifre significative): sullo schermo sono visibili i due
- fattori;
-
- si seleziona il gadget "/" (divisione) ed il risultato fina-
- le compare nel registro X.
-
- I vantaggi sono evidenti: non si deve mai far uso di parentesi;
- non è necessario un tasto conclusivo ("uguale") per dire al
- calcolatore quando eseguire le operazioni; ed inoltre sono sempre
- visibili ed accessibili i risultati parziali.
- Per un calcolo così semplice sono sufficienti due dei quattro
- registri dello stack; per calcoli più complessi si rimanda ai manuali
- che accompagnano i pocket computers Hewlett-Packard. In questi calcoli
- la visibilità continua dello stack e dei registri di memoria è
- perticolarmente utile per l'apprendimento della logica RPN e quindi
- interessante anche dal punto di vista didattico.
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- 4) Funzioni disponibili
-
- Le quattro operazioni aritmetiche.
-
- Reciproco, radice quadrata, quadrato, potenza, percentuale.
-
- Funzioni esponenziali e logaritmiche, naturali e decimali.
-
- Seno, coseno e tangente trigonometrici ed iperbolici, e loro
- funzioni inverse.
-
- Funzioni di conversione: a radianti, a gradi sessagesimali o
- centesimali; dal sistema decimale a quello sessagesimale e
- viceversa; da coordinate rettangolari a polari e viceversa.
-
- Funzioni statistiche: media, deviazione standard, correla-
- zione, interpolazione lineare, calcolo di punti sulla retta
- interpolante e dell'errore sulle ordinate dei punti interpo-
- lati con la formula di Fisher.
-
- Operazioni aritmetiche dirette sui registri di memoria.
-
-
- Per le funzioni trigonometriche la misura degli angoli può
- essere scelta in radianti, gradi sessagesimali o gradi centesimali;
- tutti i calcoli sono eseguiti in doppia precisione (64 bits); il
- risultato viene presentato in virgola fissa quando possibile, od
- automaticamente convertito in notazione scientifica se l'esponente
- supera le capacità di visualizzazione.
- Il tasto Inv serve solo ad introdurre le funzioni
- trigonometriche inverse, e non ha effetto con altre funzioni; Hyp poi
- introduce le funzioni trigonometriche iperboliche, e Hyp Inv (oppure
- Inv Hyp) le loro inverse.
- Per un buon uso di RPN si raccomanda di consultare un manuale
- di istruzioni per un pocket computer Hewlett-Packard tipo HP-11C;
- nelle pagine seguenti si riassumono le istruzioni per le operazioni
- fondamentali.
-
-
- 5) Brevi note
-
- Il tasto "%" calcola in X l'X per cento di Y.
-
- Le sequenze Recall <operazione> registro compiono un Enter,
- quindi mettono in X il risultato di X <operazione> registro.
-
-
- Le sequenze Store <operazione> registro mettono nel registro
- il risultato di Registro <operazione> X.
-
- Per media e deviazione standard, si impostano i dati in X e
- si preme il tasto Sommatoria +; in X è visibile il numero di
- dati immessi. Premendo Mean la media è in X e la deviazione
- standard in Y.
-
-
- - 3 -
-
-
-
- Per l'interpolazione lineare, si impostano le ascisse in X
- e le ordinate in Y; premendo alla fine L.R., l'intercetta è
- in X e la pendenza in Y. I registri di memoria contengono:
-
- A: Numero di dati immessi
- B: Somma delle X
- C: Somma delle X al quadrato
- D: Somma delle Y
- E: Somma delle Y al quadrato
- F: Somma dei prodotti X per Y
-
- e vengono azzerati con l'opzione Clear accumulator dei menu
- a discesa.
-
- Conversione da coordinate cartesiane a polari e viceversa:
- il raggio vettore è in X e l'azimuth in Y.
-
-
- 6) Il programma
-
- RPN è scritto in C per il compilatore SAS-C (una volta
- Lattice-C) Versione 5.10; è stato sviluppato su di un Amiga 500 con
- 512 KBytes di chip RAM e 2.5 MBytes di Fast Ram, e non dovrebbe dare
- problemi in nessun'altra configurazione. Si schedula da CLI con il
- comando RPN, o da Workbench selezionando l'icona relativa (beware:
- real men don't use icons).
- Il programma stesso è accluso in sorgente, con il Makefile che
- è servito a compilarlo ed a linkarlo; si dovrebbe trasportare con
- minime difficoltà sotto l'Aztec-C della Manx.
- Sentitevi liberi di giocare con RPN e di diffonderlo a volontà;
- ma considerate che, anche se provato a lungo, potrebbe contenere
- ancora qualche errore che si manifesti solo in occasioni particolari.
- Se per caso apportate dei cambiamenti, per correggere errori o anche
- solo perchè non vi piace la forma estetica, siete gentilmente pregati
- di darne comunicazione al sottoscritto:
-
- Maurizio LORETI (o MLO, o I3NOO)
- Via G. Donizetti, 6
- 35010 CADONEGHE (PD)
- ITALY
-
- Sono anche raggiungibile per posta elettronica come LORETI at
- IPDINFN (BITNET), o come VAXFPD::LORETI (DECnet); VAXFPD è il nodo
- numero 38.257 (o anche 39169) della rete. Tutti questi indirizzi
- corrispondono allo stesso computer, un VAX 8600 sotto sistema VMS.
-
- HAVE FUN !
- by MLO
-
-
-
-
-
-
-
- - 4 -
-