ARcalc

Una calcolatrice per Amiga Versione 2.0

di Roberto Attias

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1994, 1995 Roberto Attias

1 Introduzione

ARcalc è un programma che simula una calcolatrice scientifica, sviluppato per i computer della serie Amiga. ARcalc può essere utilizzata con qualunque modello di Amiga che disponga di una versione di sistema operativo superiore alla 1.3.

La versione 2.1 del Workbench introduce la localizzazione, cioè la possibilità di scrivere programmi che comunichino nella lingua che scelta: ARcalc è in grado di sfruttare questa caratteristica, ed è distribuito con i file necessari alla localizzazione in numerose lingue. Sono localizzate le voci di menu,e i messaggi di errore della calcolatrice, mentre è stato deciso di non localizzare le etichette dei tasti , in quanto generalmente anche sulle calcolatrici reali queste restano invariate di paese in paese.

Le funzionalità messe a disposizione da ARcalc sono quelle di calcolo in virgola mobile tipiche di una calcolatrice scientifica, inclusa la capacità di eseguire calcoli interi in base binaria, ottale ed esadecimale. Le operazioni trigonometriche implementate possono essere eseguite su valori misurati in gradi, radianti o gradi decimali, e i numeri possono essere rappresentati in notazione esponenziale, con punto decimale fisso (indicando il n. di cifre decimali desiderate), o in un modo misto. Indipendentemente dal formato di rappresentazione usato, tutti i calcoli sono svolti in doppia precisione.

ARcalc è attualmente alla versione 2.0.

La versione 1.0, peraltro mai rilasciata, era priva di localizzazione. Nella versione 1.11 erano stati eliminati alcuni bug. La versione 1.11 aggiungeva la possibilità di iconizzare il programma (mediante il pulsante "Icn" che rimpiazzava "Inf" presente nella versione 1.0).

La versione 2.0 consente di aprire ARcalc su qualunque schermo pubblico, o di spostarla su un altro schermo una volta aperta. Il programma può ora essere utilizzato da shell o da script come un comando che valuta direttamente le espressioni passate come argomento e ne restituisce in output i risultati. Tramite la nuova porta ARexx il motore di calcolo di ARcalc può essere usato da altre applicazioni o da script ARexx. E‘ inoltre implementato il parsing degli argomenti mediante le funzioni standard di AmigaDOS.

Ricordate che ARcalc non funziona nelle versioni di sistema operativo inferiore alla 2.0; se cercate di farla partire in tale caso, semplicemente non accade nulla.

2 Uso di ARcalc

Il programma può essere lanciato tanto da Workbench quanto da Shell,e si presenta visivamente come una calcolatrice posta su uno schermo pubblico, in cui si possono facilmente distinguere il display e la tastiera. D’ora in poi, per evitare confusione, chiameremo “tasti” quelli della tastiera di Amiga, mentre per riferirci a quelli della calcolatrice parleremo di “pulsanti”.

Puoi lanciare ARcalc da shell con il seguente template:

   ARcalc FONT/K,SIZE/K/N,SCREEN/K,EVAL/K

Nota che il parsing standard AmigaDOS è una caratteristica introdotta nella versione 2.0 di

ARcalc.

ARcalc è stata progettata in modo da essere font-sensitive: essa cioè può essere visualizzata con qualunque font e dimensione, adattandosi ad esso. Al lancio, il font con cui visualizzare la calcolatrice, così come altre caratteristiche che vedremo più avanti, viene determinato grazie ad un file di configurazione presente nella stessa directory di ARcalc, di nome ‘ARcalc.config’; se tale file è assente, è utilizzato per default lo stesso font usato dal Workbench. Lanciando la calcolatrice da shell si può scegliere il font da usare digitando:

   ARcalc FONT=<nome font> SIZE=<dimensione Y>

In questo caso ARcalc cercherà di usare questo font, anche se fosse presente il file di configurazione. Il font scelto (che può essere di bitmap o compugraphic, proporzionale o meno) viene utilizzato per le label associate ai tasti e per il display, ma non per i menu; esso può essere modificato anche dopo il lancio, tramite la scelta Cambia font... nel sottomenu Parametri del menu Progetto (See Chapter 4 [I menu di ARcalc], page 9. ).

Puoi aprire la calcolatrice su uno schermo pubblico differente dal Workbench usando il parametro SCREEN, come nel seguente esempio:

   ARcalc SCREEN mioschermo

Se devi fare un rapido calcolo da shell, puoi usare il parametro EVAL. Digitando

   ARcalc EVAL <expression>

il risultato della valutazione sarà mostrato sulla shell senza aprire la finestra di ARcalc.

Il lancio di ARcalc può fallire per diversi motivi (mancanza di memoria, scelta di un font troppo grande, errori in apertura di librerie...); in tal caso viene mostrato un appropriato messaggio di errore.

Una delle peculiarità di ARcalc è che permette di introdurre espressioni complesse esattamente come vengono scritte normalmente. Tale operazione può essere fatta sia digitando manualmente le espressioni usando la tastiera del computer, che agendo mediante il mouse sui pulsanti della calcolatrice. Nella parte superiore del display, che chiameremo in seguito "area di editing", è visibile la espressione che si sta introducendo, ed essa può essere editata facendo uso dei tipici shortcut degli string gadget Amiga, o mediante gli appositi pulsanti di editing.

Per calcolare il valore di una espressione impostata è sufficiente premere il tasto RETURN di Amiga, o il pulsante = della calcolatrice; il risultato comparirà nella parte inferiore destra del display, che chiameremo “area risultati”. Nell’area risultati, oltre ai valori della computazione, possono essere anche visualizzati eventuali errori di sintassi o di calcolo. Se si verifica un errore di sintassi, il cursore dell’area di editing si posiziona sul punto dell’espressione dove si è riscontrato l’errore, permettendo così di correggerlo; la posizione del cursore non è invece significativa in caso di errore di calcolo. Per un elenco completo degli errori di sintassi e di calcolo si rimanda alla sezione 5 di questo manuale (See Chapter 4 [I menu di ARcalc], page 9. ).

3 Descrizione dettagliata dei pulsanti di ARcalc

Si darà ora una descrizione dettagliata della funzione svolta dai pulsanti della calcolatrice. I pulsanti si dividono nelle seguenti classi:

3.1 Pulsanti di editing

I pulsanti di editing si trovano nella parte superiore destra della calcolatrice, e servono ad eseguire le più comuni operazioni di editing. I pulsanti di editing sono i seguenti:

<= (freccia sinistra): questo pulsante permette di spostare a sinistra di un carattere il cursore dell’area di editing. Analoga funzione può essere ottenuta mediante la freccia sinistra della tastiera di Amiga.

=> (freccia destra): questo pulsante permette di spostare a destra di un carattere il cursore dell’area di editing. Analoga funzione può essere ottenuta mediante la freccia destra della tastiera di Amiga.

Del (Delete): questo pulsante permette di cancellare il carattere su cui si trova il cursore dell’area di editing. Analoga funzione può essere ottenuta mediante il tasto DEL di Amiga.

Bck (Backspace): questo pulsante permette di cancellare il carattere alla immediata sinistra del cursore nell’area di editing. Analoga funzione può essere ottenuta mediante il tasto <- di Amiga.

Clr (Clear): questo pulsante permette di cancellare tutta l’espressione. Analoga funzione può essere ottenuta mediante la pressione dei tasti AMIGA-LEFT X

3.2 Pulsanti di stato

I pulsantii di stato sono caratterizzati dal fatto di modificare lo stato della calcolatrice. Lo stato complessivo della calcolatrice è visibile nella parte inferiore sinistra del display, rappresentato da alcune sigle: per comodità chiameremo “area di stato” l’area del display in cui tali sigle compaiono. Si noti che lo stato complessivo al lancio del programma dipende dal contenuto del file di configurazione ‘ARcalc.config’; se questo non è presente, vengono assunti dei valori di default, indicati nel seguito.

I pulsanti di stato sono i seguenti:

Bse (numeric BaSE): questo pulsante permette di scegliere la base in cui si desidera lavorare. La base attuale è visibile nell’area di stato, mediante uno dei seguenti simboli:

dec base decimale

hex base esadecimale

oct base ottale

bin base binaria

La pressione del pulsante Bse produce il passaggio da una base alla successiva nel seguente ordine:

... -> dec -> hex -> bin -> oct -> ...

Il cambio di base da luogo automaticamente all’annullamento dell’espressione eventualmente presente nell’area di editing, perchè ogni numero nella espressione cambierebbe valore nella nuova base. Si noti che quandola base non è quella esadecimale alcuni dei pulsanti della calcolatrice, pur continuando a funzionare, perdono di significato (p.e. i tasti A, B, C, D, E, F in base decimale non sono utili, anche se continano a funzionare). ARcalc inoltre non è in grado di utilizzare numeri non interi in basi diverse da quella decimale: ciò comporta anche il fatto che alcune funzioni non siano più significative pur continuando ad essere utilizzabili (p.e. la funzione sin(x), pur funzionando perfettamente in ogni base, può restituire solo i valori 0 o 1 se la base non è decimale). Se non è presente il file ‘ARcalc.config’, al lancio del programma viene usata la base decimale.

Fse (Fixed,Scientific,normal): questo pulsante permette di scegliere la notazione di visualizzazione dei risultati tra le seguenti tre modalità: Fissa: indicato dal sibolo fix nell’area di stato, tale formato prevede la visualizzazione del risultato con un numero fissato di cifre decimali. Il numero di cifre decimali è definibile mediante il tasto Fix. Scientifica: indicato dal simbolo sci nell’area di stato, tale formato prevede la visualizzazione del risultato in notazione scientifica. Si noti che in tale formato il numero di cifre significative fissato con il pulsante Fix non è più riferito alle cifre decimali, ma alle cifre componenti la base del numero in notazione scientifica. Normale: indicato dal simbolo nor nell’area di stato, tale formato è un misto dei due precedenti: il risultato verrà visualizzato nel formato che produrrà la stringa più piccola, tra quello scientifico e quello a virgola fissa. Si noti che nel passaggio da un formato all’altro il risultato dell’ultima espressione viene rivisualizzato nel nuovo formato. Se non è presente il file ‘ARcalc.config’, al lancio del programma viene usata la notazione normale.

Drg (Degrees,Radiant,decimal degrees (Grad) ): Questo pulsante permette di scegliere l’unità di misura degli archi per le funzioni trigonometriche. Le possibili unità di misura sono:

Gradi: caratterizzati dal simbolo deg nell’area di stato Radianti: caratterizzati dal simbolo rad nell’area di stato Gradi decimali: caratterizzati dal simbolo Grad nell’area di stato

Se non è presente il file ‘ARcalc.config’, al lancio del programma gli archi si considerano misurati in radianti.

Fix (Fix significant digits): questo pulsante permette di fissare, a seconda della notazione attualmente in uso, il numero di cifre dopo la virgola (notazione fissa) o il numero di cifre significative (notazione scientifica o normale). Quando questo pulsante viene premuto, nella parte inferiore del display compare la seguente scritta:

Numero di cifre (0-9)

a questo punto l’utente dovrebbe premere uno dei pulsanti numerici della calcolatrice tra 0 e 9, indicando così il numero di cifre desiderato: qualunque altro pulsante venga premuto comporta l’annullamento della operazione, mantenendo invariato il numero di cifre. Si ricorda che qualunque sia il numero di cifre fissato, tutti i calcoli vengono svolti in doppia precisione. Se non è presente il file ‘ARcalc.config’, al lancio del programma viene usato il numero massimo di cifre, cioè nove.

Inv (Inverse function): questo pulsante premette di ottenere le funzioni inverse delle funzioni presenti nella tastiera della calcolatrice. Quando viene premuto, nell’area di stato compare il simbolo Inv: se il prossimo tasto premuto sarà un tasto indicante una funzione, allora nell’espressione verrà introdotta la funzione inversa corrispondente, a patto che questa sia definita (p.e. non è definita la f.ne inversa della funzione fattoriale Fact). La pressione del pulsante Inv non produce nessun risultato se il pulsante successivo non è associato ad una funzione, o se tale funzione non ammette funzione inversa.

Hyp (Hyperbolic function): questo pulsante permette di ottenere le funzioni iperboliche. Quando viene premuto, nell’area di stato compare il simbolo Hyp: se il successivo pulsante premuto sarà relativo ad una funzione trigonometrica, verrà inserita nell’espressione la corrispondente funzione iperbolica. Il tasto Inv può essere usato insieme a questo tasto per ottenere le funzioni inverse delle funzioni iperboliche. La pressione del pulsante Hyp non produce alcun effetto se il successivo premuto non è associato ad una funzione trigonometrica.

3.3 Pulsanti di testo

I pulsanti di testo permettono di inserire nella espressione in editing cifre, funzioni, operatori etc. Tutto ciò che viene inserito mediante i pulsanti di testo può essere digitato anche tramite la tastiera di Amiga, ma tali pulsanti offrono una comoda scorciatoia. Si noti che il parser delle espressioni non è case sensitive, e quindi queste si possono digitare senza preoccuparsi di usare caratteri maiuscoli o minuscoli. Diamo di seguito l’elenco dei pulsanti di testo presenti nella calcolatrice:

log da solo produce la stringa Log(, indicante la funzione logaritmo in base 10; in congiunzione con Inv produce la stringa 10^, dove ^è il simbolo di elevamento a potenza.

ln da solo produce la stringa Ln(, indicante la funzione logaritmo in base e (numero di nepero); in congiunzione con Inv produce la stringa e^.

x2 da solo produce la stringa ^2, indicante l’elevamento alla seconda potenza; in congiunzione con Inv produce la stringa Sqrt(,indicante la funzione radice quadrata.

mod produce la stringa Mod(, indicante la funzione modulo, cioè il resto nella divisione del primo argomento per il secondo (‘Mod(11,3) restituisce 2’)

sin da solo produce la stringa Sin(, indicante la funzione trigonometrica seno. In congiunzone con Inv produce la stringa ArcSin(, indicante la funzione arcoseno. AT-TENZIONE: il risultato dell’applicazione di tali funzione dipende dall’unità di misura scelta per l’arco (RAD, DEG, GRAD). In congiunzione con Hyp produce la stringa Sh(, indicante la funzione seno iperbolico. Se anche Inv era stato premuto viene prodotta la stringa ArcSh(, indicante la funzione settore seno iperbolico

cos da solo produce la stringa Cos(, indicante la funzione trigonometrica coseno. In congiunzone con Inv produce la stringa ArcCos(, indicante la funzione arcocoseno. AT-TENZIONE: il risultato dell’applicazione di tali funzione dipende dall’unità di misura scelta per l’arco (RAD, DEG, GRAD). In congiunzione con Hyp produce la stringa Ch(, indicante la funzione coseno iperbolico. Se anche Inv era stato premuto viene prodotta la stringa ArcCh(, indicante la funzione settore coseno iperbolico

tan da solo produce la stringa Tan(, indicante la funzione trigonometrica tangente. In congiunzone con Inv produce la stringa ArcTan(, indicante la funzione arcotangente. AT-TENZIONE: il risultato dell’applicazione di tali funzione dipende dall’unità di misura scelta per l’arco (RAD, DEG, GRAD). In congiunzione con Hyp produce la stringa Th(, indicante la funzione tangente iperbolica. Se anche Inv era stato premuto viene prodotta la stringa ArcTh(, indicante la funzione ettore tangente iperbolica

and produce la stringa and, indicante l’operatore infisso di and bit a bit. L’uso di questo operatore forza gli argomenti ad interi a 32 bit.

or produce la stringa or, indicante l’operatore infisso di or bit a bit. L’uso di questo operatore forza gli argomenti ad interi a 32 bit.

not produce la stringa not, indicante l’operatore prefisso di not bit a bit. L’uso di questo operatore forza l’argomento ad intero a 32 bit.

xor produce la stringa xor, indicante l’operatore infisso di xor bit a bit. L’uso di questo operatore forza gli argomenti ad interi a 32 bit.

fct produce la stringa Fact(, indicante la funzione fattoriale.

rnd produce la stringa Rnd(, indicante una funzione ad un argomento per la generazione di un numero pseudocasuale. Se x è il valore dell’argomento, il numero pseudo casuale viene generato nell’intervallo [0,x] se x>0, nell’intervallo [x,0] altrimenti.

( e ) (pulsanti parentesi aperta e chiusa): producono i corrispondenti caratteri.

Pi produce la stringa Pi, che raprresenta la costante simbolica Pi-greco. In fase di calcolo tale costante assume il valore corrispondente in doppia precisione

e produce la stringa e, che rappresenta la costante simbolica numero e (di Nepero). In

fase di calcolo tale costante assume il valore corrispondente in doppia precisione.

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

producono il carattere corrispondente, indicante una cifra. L’interpretazione dei numeri presenti nell’espressione dipende ovviamente dalla base settata; questi tasti restano comunque tutti utilizzabili in ogni base, anche se l’uso di alcuni di essi in basi diverse da quelle esadecimali è inutile.

Exp produce il carattere E, che si usa nella scrittura di un numero in forma esponenziale. Si noti che nella analisi sintattica dell’espressione non si considerano differenti i caratteri E, prodotto dal tasto Exp, ed e, prodotto dal tasto e (costante di Nepero); questi possono apparire in entrambi i casi maiuscoli o minuscoli, e il significato che viene ad essi attribuiti dipende dal contesto.

, (virgola): produce il carattere corrispondente. L’unico utilizzo di questo tasto è nella scrittura della funzione mod(a,b); poichè tale funzione ha due parametri, è necessario separarli mediante una ",". La presenza di un apposito tasto garantisce la completa usablità della calcolatrice via mouse.

+,-,*,/,^

producono il corrispondente carattere, indicante rispettivamente l’operatore somma, differenza, prodotto, rapporto, elevamento a potenza. Si noti che il - può essere anche utilizzato come preoperatore per modificare il segno dell’operando.

v,w,x,y,z

questi pulsanti rappresentano delle variabili utilizzabili nelle espressioni. se Premuti, producono il carattere corrispondente, indicante appunto una variabile. Per l’assegnamento di un valore a queste variabili, vedere il pulsante speciale sto.

3.4 Pulsanti speciali

Raggruppiamo in questa classe tutti quei pulsanti la cui pressione produce qualche particolare azione non direttamente legata all’editing di un’espressione. Tali pulsanti sono:

sto consente di memorizzare il valore dell’espressione attuale in una variabile. Quando questo tasto viene premuto, nella parte inferiore del display viene stampato un messaggio, che richiede di scegliere la variable in cui memorizzare il valore:

Scegli la variabile:

a questo punto l’utente dovrebbe premere uno dei tasti-variabile persenti alla sinistra della tastiera numerica: l’espressione attualmente in editing verrà valutata, e il valore computato sarà assegnato alla variabile scelta. Quando questa variabile verrà inclusa in un’espressione, il suo valore sarà utilizzato in fase di calcolo.

cpy permette di inserire nell’espressione, alla posizione indicata dal cursore, il valore precedentemente calcolato, presente nella area risultati.

get permette di copiare dalla clipboard Amiga un’espressione eventualmente postavi da un altra applicazione. Eventuali caratteri con codice ASCII minore di 32 o maggiore di 126 vengono eliminati dalla stringa. put permette di copiare il risultato di una espressione nella clipboard Amiga, rendendola

disponibile ad un’altra applicazione.

= (uguale): la pressione di questo tasto produce la valutazione dell’espressione attuale, e la visualizzazione del risultato (o di un messaggio di errore) nella area risultati. Dopo la computazione, l’espressione nell’area di editing può essere automaticamente cancellata o meno, in funzione dello stato del flag AutoCLR, settabile dall’utente grazie al sottomenu Parametri See Chapter 4 [I menu di ARcalc], page 9.

4 I menu di ARcalc

ARcalc dispone di due menu, che nella localizzazione italiana sono indicati come Progetto e Clipboard. Il menu ‘Progetto’ ha le seguenti voci:

Parametri

questo è un sottomenu, mediante il quale è possibile modificare o fissare alcune delle caratteristiche della calcolatrice. Le voci del sottomenu sono le seguenti:

Cambia font ...

permette di modificare il font con cui la calcolatrice è rappresentata, mediante l’uso di un font requester standard Amiga. Se il font scelto risultasse troppo grande, o non esistente, verrebbe visualizzato un appropriato messaggio di errore, e la calcolatrice non varierebbe; in caso contrario verrebbe rivisualizzata utilizzando il nuovo font.

Usa font WB

consente di modificare il font come per la voce precedente, ma utilizzando il font di default dello schermo del Workbench.

AutoCLR questa voce permette di attivare o disattivare la funzione di auto-clear della calcolatrice. Quando l’utente preme return, il pulsante =,il pulsante sto, o il tasto RETURN, l’espressione viene computata e, se la funzione di auto-clear è attiva, il testo dell’espressione viene cancellato, in modo da permettere immediatamente un nuovo inserimento. Se la funzione di autoclear è invece disattivata, il testo della espressione precedente non viene cancellato, e può essere ritoccato. La funzione di auto-clear è attivata quando la voce del menu è preceduta dal simbolo checkmark Amiga.

Salva parametri

Permette di salvare lo stato e i settings della calcolatrice in un file nominato ‘ARcalc.config’. Quando la calcolatrice viene lanciata, cerca questo file e, se lo trova, si apre con le caratteristiche in esso fissate. Le caratteristiche che vengono fissate all’atto della scelta della voce Salva parametri sono le seguenti:

posizione della calcolatrice sullo screen;

font utilizzato;

stato del flag AutoCLR.

stato della calcolatrice, cioè base numerica, unità di misura dell’arco, formato di rappresentazione, numero di cifre significative.

Jump

aggiunto nella versione 2.0 di ARcalc, sposta la calcolatrice sul successivo schermo pubblico aperto.

Informazioni ...

mostra un quadro con le informazioni sul programma e sul suo autore. Analogo risultato si ottiene con la pressione del tasto Inf della calcolatrice.

Termina termina l’uso della calcolatrice. Analogo risultato si ottiene premendo il gadget di chiusura della finestra della calcolatrice.

Il menu Clipboard ha le seguenti voci:

Taglia risultato

copia il risultato dell’ultimo calcolo eseguito nella clipboard Amiga. Analogo risultato si ottiene con la pressione del pulsante put della calcolatrice.

Incolla espressione

copia il contenuto della clipboard Amiga nell’area di editing dell’espressione corrente, eliminando eventuali caratteri non leggibili (come i newline). Analogo risultato si ottiene con la pressione del pulsante get della calcolatrice.

5 I messaggi di errore

Diamo qui un elenco dettagliato dei messaggi di errore che possono comparire nell’area risultati del display, in seguito alla pressione del pulsante =, sto, o del tasto RETURN. Per una descrizione generale del fenomeno, See Chapter 2 [Uso di ARcalc], page 2.

5.1 Errori di sintassi

Operatore non valido: dopo un operando valido, è presente una sequenza di simboli non riconosciuta come operatore. mancano cifre nel numero: visualizzato quando dopo il punto indicante il termine della parte intera, non sono state digitate le cifre decimali di un numero. Esponente non valido: visualizzato quando l’esponente di un numero espresso in forma esponenziale, supera il valore massimo consentito ( 300 ), o manca, o comunque non è corretto. Mancano parentesi: mancano parentesi nell’espressione. Parentesi che erano state aperte, non sono mai state chiuse. Operando sconosciuto: dove dovrebbe esserci un operando, vi è una sequenza di simboli non interpretabile come tale. Manca un operando: l’espressione termina con un operatore, cui non segue un operando. Troppe cifre: nel numero sono presenti troppe cifre.

5.2 Errori di calcolo

Underflow: una qualche operazione ha prodotto un risultato così piccolo da non essere rappresentabile in doppia precisione. Overflow o numero non valido: una qualche operazione ha prodotto un risultato tanto grande da essere al di fuori del range di numeri rappresentabili in doppia precisione Divisione per zero: si è prodotta una divisione per zero. Divisione per zero nel modulo: poichè non si può dividere un numero per zero, tantomeno se ne può ottenere il modulo nella divisione per zero. Argomento di ArcSin() fuori dal dominio: l’argomento di questa funzione deve cadere nell’intervallo [-1,1] Argomento di ArcCos() fuori dal dominio: l’argomento di questa funzione deve cadere nell’intervallo [-1,1] Argomento di ArcCh() fuori dal dominio: l’argomento di questa funzione deve essere >= 1 Argomento di ArcTh() fuori dal dominio: l’argomento di questa funzione deve cadere nell’intervallo (-1,1) (gli estremi sono esclusi).

L'argomento del logaritmo deve essere positivo: Indica che è stata applicata la funzione

ln(x) o log(x) ad un valore negativo o nullo, quando entrambe queste funzioni sono definite solo per valori positivi dell’argomento.

L'argomento di Sqrt() non può essere negativo: la funzione Sqrt() (radice quadrata) è

definita solo per valori non negativi.

L'argomento di Fact() non può essere negativo: la funzione fattoriale è definita solo per

valori non negativi dell’argomento.

6 Supporto ARexx

A partire dalla versione 2.0 ARcalc dispone di una porta ARexx di nome "ARCALCPORT". Puoi scrivere script ARexx o programmi (per es. plotter di funzioni) usando ARcalc come motore per la valutazione delle funzioni.

ARcalc ignora qualunque comando spedito alla sua porta se non viene richiesto l’invio di risultati (in caso di script, se non viene specificato il flag "OPTIONS RESULT").

Alcuni comandi ARexx possono fallire. Un comando fallisce se la variabile RC contiene il valore 0. Se il comando è inviato da uno script ARexx il messaggio di errore si trova nella variabile ARCALC ERROR dello script.

Puoi trovare qualche piccolo script di esempio nella directory AREXX dell’archivio di distribuzione.

I comandi supportati da ARcalc sono i seguenti:

EVAL<espressione> Calcola il valore dell’espressione data. Se RC è zero il risultato si trova nella variabile RESULT; in caso contrario l’errore verificatosi è indicato nella variabile ARCALC ERROR

SETVAR <variabile> <espressione> Valuta l’espressione data e pone il risultato nella variabile <variabile>, che può essere una delle seguenti lettere: "u", "v", "w", "x", "y", "z". Puoi usare queste variabili per memorizzare valori temporanei in una computazione complessa. Come per il comando precedente, in caso di errore puoi esaminare il contenuto della variabile ARCALC ERROR

GETVAR<variabile> Restituisce il valore della variabile data nella variabile RESULT dello script.

SETBASE <base> Setta la base numerica. <base> può essere "dec", "hex", "oct" o "bin". Dopo aver settato una base tutti i numeri implicati nelle espressioni (e i risultati) sono espressi in tale base.

SETDRG <drg> Setta l’unita di misura degli archi per le funzioni trigonometriche. <drg> può essere "deg","rad" or "grad".

SETFIX <n.cifre> Setta il numero di cifre decimali. <n.cifre> è un numero tra 0 e 9.

SETFSE <modo> Setta la notazione per la visualizzazione dei risultati. <modo> può essere "nor","fix" o "sci".

QUIT Termina ARcalc

7 Sviluppi futuri

La versione 2.0 implementa la porta ARexx menzionata in questo capitolo nella versione precedente, e la capacità di spostarsi su schermi pubblici richiesta da alcuni utenti. Ora... qualunque altro suggerimento è il benvenuto!

8 Ringraziamenti

Ringrazio alcune persone, per l’aiuto che mi hanno dato:

Marco Caimi, Federica Colla, Paolo Silvera, Marco Zandonadi, per il beta test del programma; Steve McKinty per la revisione della documentazione in inglese (ho modificato qualcosa dopo la sua revisione, per cui forse non è ancora perfetto) Reinhard Spisser per la documentazione TexInfo e AmigaGuide; Tutti i miei localizzatori ufficiali, che hanno reso possibile la distribuzione di ARcalc con una tale varietà di linguaggi:

Steve McKinty (inglese) Reinhard Spisser (tedesco) Frank Bignone (francese) Fer de Jong (olandese) Hannu Helminen (finlandese) Anders Hammarquist (svedese) Soeren Berg Hansen (danese)

Tutta la “comunità Amiga” del Dipartimento di Scienze dell’Informazione della Università di Milano, per il loro contagiante entusiasmo, che mi ha aiutato a portare a termine questo progetto.

9 Note di distribuzione

ARcalc è un programma shareware copyright (C) 1992,1993 di Roberto Attias. Potete ridistribuire questo programma liberamente, a patto che tutti i suoi files siano inclusi nella copia nella loro forma originale, senza subire alcuna modifica, e che vi sia un ricarico solo nominale per la sua distribuzione; se vi piace e lo ritenete utile, avete l’obbligo morale di corrispondere all’autore la cifra di $10. Se non ritenete che questo programma sia sufficientemente utile per pagarlo, per favore, mandatemi un e-mail (o una lettera) per farmi conoscere le vostre opinioni.

Questo programma è distribuito privo di garanzie \di qualunque tipo, esplicite o implicite. Nell’usare ARcalc voi accettate qualunque rischio riguardante la qualità o le prestazioni dello stesso.

Qualunque suggerimento, commento o lamentela è gradito.

10 Come raggiungere l’autore

     e-mail: attias@ghost.sm.dsi.unimi.it
     FIDO: 2:331/301.8
     Posta:Roberto Attias
     Via Lissoni, 5
     20162 Milano (MI)
     Italia
     Tel:(02)-6470375