\input texinfo @c -*-texinfo-*- @setfilename ARcalc.guide @settitle @code{ARcalc}'s Manual @setchapternewpage off @finalout @titlepage @title ARcalc @subtitle An Amiga Calculator @subtitle Version 1.1 @author by Roberto Attias @page @vskip 0pt plus 1filll Copyright @copyright{} 1992 Roberto Attias @end titlepage @defindex ga @ifinfo @node Top @top @menu * Introduzione:: * Uso di ARcalc:: * Descrizione dettagliata dei bottoni di ARcalc:: * I menu di ARcalc:: * I messaggi di errore:: * Sviluppi futuri:: * Ringraziamenti:: * Note di distribuzione:: * Come raggiungere l'autore:: @end menu @end ifinfo @c ___________________________________________ @c | |_ @c | ARcalc |/| @c | La calcolatrice scientifica per Amiga |/| @c | Release 1.1 |/| @c | |/| @c | sviluppata da Roberto Attias |/| @c |___________________________________________|/| @c |ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ| @c @c @node Introduzione @chapter Introduzione @code{ARcalc} e` un programma che simula una calcolatrice scientifica, sviluppato per i computer della serie Amiga. @code{ARcalc} puo` 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, cioe` la possibilita` di scrivere programmi che comunichino con l'utente nella lingua che questi ha scelto: @code{ARcalc} e` in grado di sfruttare questa caratteristica, ed e` distribuito con i files necessari alla localizzazione in numerose lingue. Sono localizzate le voci di menu,e i messaggi di errore della calcolatrice, mentre si e` deciso di non localizzare le etichette dei tasti , in quanto generalmente anche sulle calcolatrici reali queste restano invariate di paese in paese. Le funzionalita` messe a disposizione da @code{ARcalc} sono quelle di calcolo in virgola mobile tipiche di una calcolatrice scientifica, inclusa la capacita` 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. @code{ARcalc} e` attualmente alla versione 1.1. La versione 1.0, peraltro mai rilasciata, era priva di localizzazione. Ricordate che @code{ARcalc} @strong{non} funziona nelle versioni di sistema operativo inferiore alla 2.0; se cercate di farla partire in tale caso, semplicemente non accade nulla. @node Uso di ARcalc @chapter Uso di ARcalc Il programma puo` essere lanciato tanto da Workbench quanto da Shell,e si presenta visivamente come una calcolatrice posta sullo schermo del Workbench, in cui si possono facilmente distinguere il display e la tastiera. D'ora in poi, per evitare confusione, chiameremo `tasti' quelli della tastiera dell'Amiga, mentre per riferirci a quelli della calcolatrice parleremo di `bottoni'. @code{ARcalc} e` stata progettata in modo da essere font-sensitive: essa cioe` puo` essere visualizzata con qualunque font e dimensione l'utente decida, adattandosi ad esso. Al lancio, il font con cui visualizzare la calcolatrice, cosi` come altre caratteristiche che vedremo piu` avanti, viene determinato grazie ad un file di configurazione presente nella stessa directory di @code{ARcalc}, di nome @file{ARcalc.config}; se tale file e` assente, e` utilizzato per default lo stesso font usato dal Workbench. E` altresi` possibile specificare un font sulla linea di comando (in caso di lancio da Shell) con la seguente sintassi: @code{ARcalc } In questo caso @code{ARcalc} cerchera` di usare questo font, anche se fosse presente il file di configurazione. Il font scelto (che puo` 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 puo` essere modificato anche dopo il lancio, tramite la scelta @code{Cambia font...} nel sottomenu @code{Parametri} del menu @code{Progetto} (@xref{I menu di ARcalc}. ). Il lancio di @code{ARcalc} puo` fallire per diversi motivi (mancanza di memoria, scelta di un font troppo grande, errori in apertura di librerie...); in tal caso l'utente viene avvertito tramite un appropriato messaggio di errore. Una delle peculiarita` di @code{ARcalc} e` che permette di introdurre espressioni complesse esattamente come vengono scritte normalmente. Tale operazione puo` essere fatta sia digitando manualmente l'espressione usando la tastiera del computer, che agendo mediante il mouse sui bottoni della calcolatrice. Nella parte superiore del display, che chiameremo in seguito "area di editing", e` visibile l'espressione che si sta introducendo, ed essa puo` essere editata facendo uso dei tipici shortcut degli string gadget Amiga, o mediante gli appositi bottoni di editing. Per calcolare il valore dell'espressione impostata, e` sufficiente premere il tasto @code{RETURN} di Amiga, o il bottone @code{=} della calcolatrice; il risultato comparira` 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 e` riscontrato l'errore, permettendo cosi` di correggerlo; la posizione del cursore non e` 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 (@xref{I menu di ARcalc}. ). @node Descrizione dettagliata dei bottoni di ARcalc @chapter Descrizione dettagliata dei bottoni di ARcalc Si dara` ora una descrizione dettagliata della funzione svolta dai bottoni della calcolatrice. I bottoni si dividono nelle seguenti classi: @menu * Bottoni di editing:: * Bottoni di stato:: * Bottoni di testo:: * Bottoni speciali:: @end menu @node Bottoni di editing @section Bottoni di editing I Bottoni di editing si trovano nella parte superiore destra della calcolatrice, e servono ad eseguire le piu` comuni operazioni di editing. I bottoni di editing sono i seguenti: @table @code @item <= (freccia sinistra): questo bottone permette di spostare a sinistra di un carattere il cursore dell'area di editing. Analoga funzione puo` essere ottenuta mediante la freccia sinistra della tastiera di Amiga. @item => (freccia destra): questo bottone permette di spostare a destra di un carattere il cursore dell'area di editing. Analoga funzione puo` essere ottenuta mediante la freccia destra della tastiera di Amiga. @item Del (Delete): questo bottone permette di cancellare il carattere su cui si trova il cursore dell'area di editing. Analoga funzione puo` essere ottenuta mediante il tasto @key{Del} di Amiga. @item Bck (Backspace): questo bottone permette di cancellare il carattere alla immediata sinistra del cursore nell'area di editing. Analoga funzione puo` essere ottenuta mediante il tasto @key{<-} di Amiga. @item Clr (Clear): questo bottone permette di cancellare tutta l'espressione. Analoga funzione puo` essere ottenuta mediante la pressione dei tasti @key{Amiga-Left X} @end table @node Bottoni di stato @section Bottoni di stato I Bottoni di stato sono caratterizzati dal fatto di modificare lo stato della calcolatrice. Lo stato complessivo della calcolatrice e` visibile nella parte inferiore sinistra del display, rappresentato da alcune sigle: per comodita` 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 @file{ARcalc.config}; se questo non e` presente, vengono assunti dei valori di default, indicati nel seguito. I bottoni di stato sono i seguenti: @table @code @item Bse (numeric BaSE): questo bottone permette di scegliere la base in cui si desidera lavorare. La base attuale e` visibile nell'area di stato, mediante uno dei seguenti simboli: @table @code @item dec base decimale @item hex base esadecimale @item oct base ottale @item bin base binaria @end table La pressione del bottone @code{Bse} produce il passaggio da una base alla successiva nel seguente ordine: @code{... -> dec -> hex -> bin -> oct -> ...} Il cambio di base da luogo automaticamente all'annullamento dell'espressione eventualmente presente nell'area di editing, perche` ogni numero nella espressione cambierebbe valore nella nuova base. Si noti che quandola base non e` quella esadecimale alcuni dei bottoni della calcolatrice, pur continuando a funzionare, perdono di significato (p.e. i tasti @code{A}, @code{B}, @code{C}, @code{D}, @code{E}, @code{F} in base decimale non sono utili, anche se continano a funzionare). @code{ARcalc} inoltre non e` in grado di utilizzare numeri non interi in basi diverse da quella decimale: cio` comporta anche il fatto che alcune funzioni non siano piu` significative pur continuando ad essere utilizzabili (p.e. la funzione @code{sin(@var{x})}, pur funzionando perfettamente in ogni base, puo` restituire solo i valori 0 o 1 se la base non e` decimale). Se non e` presente il file @file{ARcalc.config}, al lancio del programma viene usata la base decimale. @item Fse (Fixed,Scientific,normal): questo bottone permette di scegliere la notazione di visualizzazione dei risultati tra le seguenti tre modalita`: @code{Fissa}: indicato dal sibolo @code{fix} nell'area di stato, tale formato prevede la visualizzazione del risultato con un numero fissato di cifre decimali. Il numero di cifre decimali e` definibile mediante il tasto @code{Fix}. @code{Scientifica}: indicato dal simbolo @code{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 bottone @code{Fix} non e` piu` riferito alle cifre decimali, ma alle cifre componenti la base del numero in notazione scientifica. @code{Normale}: indicato dal simbolo @code{nor} nell'area di stato, tale formato e` un misto dei due precedenti: il risultato verra` visualizzato nel formato che produrra` la stringa piu` 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 e` presente il file @file{ARcalc.config}, al lancio del programma viene usata la notazione normale. @item Drg (Degrees,Radiant,decimal degrees (Grad) ): Questo bottone permette di scegliere l'unita` di misura degli archi per le funzioni trigonometriche. Le possibili unita` di misura sono: @itemize @item @code{Gradi}: caratterizzati dal simbolo @code{deg} nell'area di stato @item @code{Radianti}: caratterizzati dal simbolo @code{rad} nell'area di stato @item @code{Gradi decimali}: caratterizzati dal simbolo @code{Grad} nell'area di stato @end itemize Se non e` presente il file @file{ARcalc.config}, al lancio del programma gli archi si considerano misurati in radianti. @item Fix (Fix significant digits): questo bottone 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 bottone viene premuto, nella parte inferiore del display compare la seguente scritta: @code{Numero di cifre (0-9)} a questo punto l'utente dovrebbe premere uno dei bottoni numerici della calcolatrice tra 0 e 9, indicando cosi` il numero di cifre desiderato: qualunque altro bottone 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 e` presente il file @file{ARcalc.config}, al lancio del programma viene usato il numero massimo di cifre, cioe` nove. @item Inv (Inverse function): questo bottone premette di ottenere le funzioni inverse delle funzioni presenti nella tastiera della calcolatrice. Quando viene premuto, nell'area di stato compare il simbolo @code{Inv}: se il prossimo tasto premuto sara` un tasto indicante una funzione, allora nell'espressione verra` introdotta la funzione inversa corrispondente, a patto che questa sia definita (p.e. non e` definita la f.ne inversa della funzione fattoriale @emph{Fact}). La pressione del bottone Inv non produce nessun risultato se il bottone successivo non e` associato ad una funzione, o se tale funzione non ammette funzione inversa. @item Hyp (Hyperbolic function): questo bottone permette di ottenere le funzioni iperboliche. Quando viene premuto, nell'area di stato compare il simbolo @code{Hyp}: se il successivo bottone premuto sara` relativo ad una funzione trigonometrica, verra` inserita nell'espressione la corrispondente funzione iperbolica. Il tasto Inv puo` essere usato insieme a questo tasto per ottenere le funzioni inverse delle funzioni iperboliche. La pressione del bottone @code{Hyp} non produce alcun effetto se il successivo premuto non e` associato ad una funzione trigonometrica. @end table @node Bottoni di testo @section Bottoni di testo I bottoni di testo permettono di inserire nella espressione in editing cifre, funzioni, operatori etc. Tutto cio` che viene inserito mediante i bottoni di testo puo` essere digitato anche tramite la tastiera di Amiga, ma tali bottoni offrono una comoda scorciatoia. Si noti che il parser delle espressioni non e` case sensitive, e quindi queste si possono digitare senza preoccuparsi di usare caratteri maiuscoli o minuscoli. Diamo di seguito l'elenco dei bottoni di testo presenti nella calcolatrice: @table @code @item log da solo produce la stringa @code{Log(}, indicante la funzione @emph{logaritmo} in base 10; in congiunzione con @code{Inv} produce la stringa @code{10^}, dove @code{^} e` il simbolo di elevamento a potenza. @item ln da solo produce la stringa @code{Ln(}, indicante la funzione @emph{logaritmo} in base e (numero di nepero); in congiunzione con @code{Inv} produce la stringa @code{e^}. @item x2 da solo produce la stringa @code{^2}, indicante l'elevamento alla seconda potenza; in congiunzione con @code{Inv} produce la stringa @code{Sqrt(},indicante la funzione @emph{radice quadrata}. @item mod produce la stringa @code{Mod(}, indicante la funzione @emph{modulo}, cioe` il resto nella divisione del primo argomento per il secondo (@samp{Mod(11,3) restituisce 2}) @item sin da solo produce la stringa @code{Sin(}, indicante la funzione trigonometrica @emph{seno}. In congiunzone con @code{Inv} produce la stringa @code{ArcSin(}, indicante la funzione @emph{arcoseno}. ATTENZIONE: il risultato dell'applicazione di tali funzione dipende dall'unita` di misura scelta per l'arco (RAD, DEG, GRAD). In congiunzione con @code{Hyp} produce la stringa @code{Sh(}, indicante la funzione @emph{seno iperbolico}. Se anche @code{Inv} era stato premuto viene prodotta la stringa @code{ArcSh(}, indicante la funzione @emph{settore seno iperbolico} @item cos da solo produce la stringa @code{Cos(}, indicante la funzione trigonometrica @emph{coseno}. In congiunzone con @code{Inv} produce la stringa @code{ArcCos(}, indicante la funzione @emph{arcocoseno}. ATTENZIONE: il risultato dell'applicazione di tali funzione dipende dall'unita` di misura scelta per l'arco (RAD, DEG, GRAD). In congiunzione con @code{Hyp} produce la stringa @code{Ch(}, indicante la funzione @emph{coseno iperbolico}. Se anche @code{Inv} era stato premuto viene prodotta la stringa @code{ArcCh(}, indicante la funzione @emph{settore coseno iperbolico} @item tan da solo produce la stringa @code{Tan(}, indicante la funzione trigonometrica @emph{tangente}. In congiunzone con @code{Inv} produce la stringa @code{ArcTan(}, indicante la funzione @emph{arcotangente}. ATTENZIONE: il risultato dell'applicazione di tali funzione dipende dall'unita` di misura scelta per l'arco (RAD, DEG, GRAD). In congiunzione con @code{Hyp} produce la stringa @code{Th(}, indicante la funzione @emph{tangente iperbolica}. Se anche @code{Inv} era stato premuto viene prodotta la stringa @code{ArcTh(}, indicante la funzione @emph{ettore tangente iperbolica} @item and produce la stringa @code{and}, indicante l'operatore infisso di @emph{and} bit a bit. L'uso di questo operatore forza gli argomenti ad interi a 32 bit. @item or produce la stringa @code{or}, indicante l'operatore infisso di @emph{or} bit a bit. L'uso di questo operatore forza gli argomenti ad interi a 32 bit. @item not produce la stringa @code{not}, indicante l'operatore prefisso di @emph{not} bit a bit. L'uso di questo operatore forza l'argomento ad intero a 32 bit. @item xor produce la stringa @code{xor}, indicante l'operatore infisso di @emph{xor} bit a bit. L'uso di questo operatore forza gli argomenti ad interi a 32 bit. @item fct produce la stringa @code{Fact(}, indicante la funzione @emph{fattoriale}. @item rnd produce la stringa @code{Rnd(}, indicante una funzione @emph{ad un argomento} per la generazione di un numero pseudocasuale. Se x e` il valore dell'argomento, il numero pseudo casuale viene generato nell'intervallo @code{[0,@var{x}]} se @var{x}@code{>0}, nell'intervallo @code{[@var{x},0]} altrimenti. @item ( e ) (bottoni parentesi aperta e chiusa): producono i corrispondenti caratteri. @item Pi produce la stringa @code{Pi}, che raprresenta la costante simbolica @emph{Pi-greco}. In fase di calcolo tale costante assume il valore corrispondente in doppia precisione @item e produce la stringa @code{e}, che rappresenta la costante simbolica @emph{numero e} (di Nepero). In fase di calcolo tale costante assume il valore corrispondente in doppia precisione. @item 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 e` inutile. @item Exp produce il carattere @code{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 @code{E}, prodotto dal tasto @code{Exp}, ed @code{e}, prodotto dal tasto @code{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. @item , (virgola): produce il carattere corrispondente. L'unico utilizzo di questo tasto e` nella scrittura della funzione @code{mod(@var{a},@var{b})}; poiche` tale funzione ha due parametri, e` necessario separarli mediante una ",". La presenza di un apposito tasto garantisce la completa usablita` della calcolatrice via mouse. @item +,-,*,/,^ producono il corrispondente carattere, indicante rispettivamente l'operatore @emph{somma}, @emph{differenza}, @emph{prodotto}, @emph{rapporto}, @emph{elevamento a potenza}. Si noti che il @code{-} puo` essere anche utilizzato come preoperatore per modificare il segno dell'operando. @item v,w,x,y,z questi bottoni 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 bottone speciale @code{sto}. @end table @node Bottoni speciali @section Bottoni speciali Raggruppiamo in questa classe tutti quei bottoni la cui pressione produce qualche particolare azione non direttamente legata all'editing di un'espressione. Tali bottoni sono: @table @code @item 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: @code{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 verra` valutata, e il valore computato sara` assegnato alla variabile scelta. Quando questa variabile verra` inclusa in un'espressione, il suo valore sara` utilizzato in fase di calcolo. @item cpy permette di inserire nell'espressione, alla posizione indicata dal cursore, il valore precedentemente calcolato, presente nella area risultati. @item 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. @item put permette di copiare il risultato di una espressione nella clipboard Amiga, rendendola disponibile ad un'altra applicazione. @item = (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 puo` essere automaticamente cancellata o meno, in funzione dello stato del flag @code{AutoCLR}, settabile dall'utente grazie al sottomenu @code{Parametri} @xref{I menu di ARcalc}. @end table @node I menu di ARcalc @chapter I menu di ARcalc @code{ARcalc} dispone di due menu, che nella localizzazione italiana sono indicati come @code{Progetto} e @code{Clipboard}. Il menu @samp{Progetto} ha le seguenti voci: @table @code @item Parametri questo e` un sottomenu, mediante il quale e` possibile modificare o fissare alcune delle caratteristiche della calcolatrice. Le voci del sottomenu sono le seguenti: @table @code @item Cambia font ... permette di modificare il font con cui la calcolatrice e` 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. @item Usa font WB consente di modificare il font come per la voce precedente, ma utilizzando il font di default dello schermo del Workbench. @item AutoCLR questa voce permette di attivare o disattivare la funzione di @emph{auto-clear} della calcolatrice. Quando l'utente preme return, il bottone @code{=},il bottone @code{sto}, o il tasto @key{RETURN}, l'espressione viene computata e, se la funzione di @emph{auto-clear} e` attiva, il testo dell'espressione viene cancellato, in modo da permettere immediatamente un nuovo inserimento. Se la funzione di @emph{auto-clear} e` invece disattivata, il testo della espressione precedente non viene cancellato, e puo` essere ritoccato. La funzione di @emph{auto-clear} e` attivata quando la voce del menu e` preceduta dal simbolo @code{checkmark Amiga}. @item Salva parametri Permette di salvare lo stato e i settings della calcolatrice in un file nominato @file{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 @code{Salva parametri} sono le seguenti: @itemize @item posizione della calcolatrice sullo screen; @item font utilizzato; @item stato del flag AutoCLR. @item stato della calcolatrice, cioe` base numerica, unita` di misura dell'arco, formato di rappresentazione, numero di cifre significative. @end itemize @end table @item Informazioni ... mostra un quadro con le informazioni sul programma e sul suo autore. Analogo risultato si ottiene con la pressione del tasto @code{Inf} della calcolatrice. @item Termina termina l'uso della calcolatrice. Analogo risultato si ottiene premendo il gadget di chiusura della finestra della calcolatrice. @end table Il menu @code{Clipboard} ha le seguenti voci: @table @code @item Taglia risultato copia il risultato dell'ultimo calcolo eseguito nella clipboard Amiga. Analogo risultato si ottiene con la pressione del tasto @code{put} della calcolatrice. @item 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 tasto @code{get} della calcolatrice. @end table @node I messaggi di errore @chapter 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 bottone @code{=}, @code{sto}, o del tasto @key{RETURN}. Per una descrizione generale del fenomeno, @xref{Uso di ARcalc}. @menu * Errori di sintassi:: * Errori di calcolo:: @end menu @node Errori di sintassi @section Errori di sintassi @itemize @item @code{Operatore non valido}: dopo un operando valido, e` presente una sequenza di simboli non riconosciuta come operatore. @item @code{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. @item @code{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 e` corretto. @item @code{Mancano parentesi}: mancano parentesi nell'espressione. Parentesi che erano state aperte, non sono mai state chiuse. @item @code{Operando sconosciuto}: dove dovrebbe esserci un operando, vi e` una sequenza di simboli non interpretabile come tale. @item @code{Manca un operando}: l'espressione termina con un operatore, cui non segue un operando. @item @code{Troppe cifre}: nel numero sono presenti troppe cifre. @end itemize @node Errori di calcolo @section Errori di calcolo @itemize @item @code{Underflow}: una qualche operazione ha prodotto un risultato cosi` piccolo da non essere rappresentabile in doppia precisione. @item @code{Overflow} o @code{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 @item @code{Divisione per zero}: si e` prodotta una divisione per zero. @item @code{Divisione per zero nel modulo}: poiche` non si puo` dividere un numero per zero, tantomeno se ne puo` ottenere il modulo nella divisione per zero. @item @code{Argomento di ArcSin() fuori dal dominio}: l'argomento di questa funzione deve cadere nell'intervallo [-1,1] @item @code{Argomento di ArcCos() fuori dal dominio}: l'argomento di questa funzione deve cadere nell'intervallo [-1,1] @item @code{Argomento di ArcCh() fuori dal dominio}: l'argomento di questa funzione deve essere >= 1 @item @code{Argomento di ArcTh() fuori dal dominio}: l'argomento di questa funzione deve cadere nell'intervallo (-1,1) (gli estremi sono esclusi). @item @code{L'argomento del logaritmo deve essere positivo}: Indica che e` 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. @item @code{L'argomento di Sqrt() non puo` essere negativo}: la funzione Sqrt() (radice quadrata) e` definita solo per valori non negativi. @item @code{L'argomento di Fact() non puo` essere negativo}: la funzione fattoriale e` definita solo per valori non negativi dell'argomento. @end itemize @node Sviluppi futuri @chapter Sviluppi futuri Se questo programma sara` in qualche misura apprezzato, in futuro mi piacerebbe estenderlo. Vorrei aggiungere una porta @code{AREXX}, che consenta ad altri programmi di utilizzare @code{ARcalc} per il calcolo delle loro funzioni. C'e` anche l'eventualita` che a questo programma vengano affiancati altri moduli integrati, come per esempio un plotter di funzioni o un programma per il calcolo di funzioni complesse mediante programmi scritti in un piccolo linguaggio ad hoc, che sfrutteranno @code{ARcalc} come host di calcolo. Qualunque altro suggerimento sara` preso in considerazione. @node Ringraziamenti @chapter Ringraziamenti Ringrazio alcune persone, per l'aiuto che mi hanno dato: @itemize @item Marco Caimi, Federica Colla, Paolo Silvera, Marco Zandonadi, per il beta test del programma; @item Steve McKinty per la revisione della documentazione in inglese (ho modificato qualcosa dopo la sua revisione, per cui forse non e` ancora perfetto) @item Reinhard Spisser per la documentazione TexInfo e AmigaGuide; @item Tutti i miei @emph{localizzatori ufficiali}, che hanno reso possibile la distribuzione di @code{ARcalc} con una tale varieta` di linguaggi: @itemize @item Steve McKinty (inglese) @item Reinhard Spisser (tedesco) @item Frank Bignone (francese) @item Fer de Jong (olandese) @item Hannu Helminen (finlandese) @item Anders Hammarquist (svedese) @item Soeren Berg Hansen (danese) @end itemize @item Tutta la ``comunita` Amiga'' del Dipartimento di Scienze dell'Informazione della Universita` di Milano, per il loro @i{contagiante entusiasmo}, che mi ha aiutato a portare a termine questo progetto. @end itemize @node Note di distribuzione @chapter Note di distribuzione @code{ARcalc} e` 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 e` distribuito privo di garanzie di qualunque tipo, esplicite o implicite. Nell'usare @code{ARcalc} voi accettate qualunque rischio riguardante la qualita` o le prestazioni dello stesso. Qualunque suggerimento, commento o lamentela e` gradito. @node Come raggiungere l'autore @chapter Come raggiungere l'autore @example e-mail: attias@@ghost.sm.dsi.unimi.it Posta:Roberto Attias Via Lissoni, 5 20162 Milano (MI) Italia Tel:02-6470375 @end example @contents @bye