Nuove caratteristiche di Derive (versione 3) · INTRODUZIONE Derive, ... in Author ed ha un dubbio...

18
Nuove caratteristiche di Derive (versione 3) Sebastiano Cappuccio ( 1 ) INTRODUZIONE Derive, della Soft Warehouse Inc. di Honolulu, USA, uscì nel 1988 e con le sue capacità di calcolo simbolico, di calcolo numerico con precisione "illimitata" e di grafica, costituì subito un importante avvenimento per chi si occupa di didattica della matematica e di applicazioni al computer. Il successo di questo prodotto stimolò gli autori a migliorarne le prestazioni e ad aumentare le sue capacità di calcolo, pur mantenendo le caratteristiche di agilità, semplicità d'uso e soprattutto modeste pretese sull'hardware utilizzato. Negli anni successivi uscirono via via successive versioni, le più importanti delle quali furono la versione 2 (che introdusse tra l'altro, utilissime funzioni di programmazione, come VECTOR, ITERATE, IF), la versione 2.5 (che vide l'implementazione di molte nuove funzioni, ed es. RANDOM, MOD, FLOOR, APPEND ecc.) e soprattutto la versione 2.57 (che portò, tra l'altro, a miglioramenti nell'editing, come la possibilità di usare i tasti cursore invece di <CTRL> + <S> e <CTRL> + <D>). Contemporaneamente apparve DeriveXM che oltrepassa la famigerata barriera dei 640 Kb del DOS utilizzando anche la memoria estesa su elaboratori basati su microprocessore 386 o superiore, ormai sempre più diffusi, permettendo così l'uso di applicazioni anche molto impegnative dal punto di vista dell'occupazione di memoria (ad esempio "grandi" matrici). E' ora disponibile Derive 3, sia nella versione normale (che gli Autori chiamano Classic) che nella versione XM. 1 Mathesis - Forlì.

Transcript of Nuove caratteristiche di Derive (versione 3) · INTRODUZIONE Derive, ... in Author ed ha un dubbio...

Nuove caratteristiche di

Derive (versione 3)

Sebastiano Cappuccio (1)

INTRODUZIONE

Derive, della Soft Warehouse Inc. di Honolulu, USA, uscì nel 1988 e con le suecapacità di calcolo simbolico, di calcolo numerico con precisione "illimitata" e digrafica, costituì subito un importante avvenimento per chi si occupa di didatticadella matematica e di applicazioni al computer. Il successo di questo prodottostimolò gli autori a migliorarne le prestazioni e ad aumentare le sue capacità dicalcolo, pur mantenendo le caratteristiche di agilità, semplicità d'uso esoprattutto modeste pretese sull'hardware utilizzato.

Negli anni successivi uscirono via via successive versioni, le più importantidelle quali furono la versione 2 (che introdusse tra l'altro, utilissime funzioni diprogrammazione, come VECTOR, ITERATE, IF), la versione 2.5 (che videl'implementazione di molte nuove funzioni, ed es. RANDOM, MOD, FLOOR,APPEND ecc.) e soprattutto la versione 2.57 (che portò, tra l'altro, amiglioramenti nell'editing, come la possibilità di usare i tasti cursore invece di<CTRL> + <S> e <CTRL> + <D>).

Contemporaneamente apparve DeriveXM che oltrepassa la famigerata barrieradei 640 Kb del DOS utilizzando anche la memoria estesa su elaboratori basatisu microprocessore 386 o superiore, ormai sempre più diffusi, permettendo cosìl'uso di applicazioni anche molto impegnative dal punto di vista dell'occupazionedi memoria (ad esempio "grandi" matrici).

E' ora disponibile Derive 3, sia nella versione normale (che gli Autori chiamanoClassic) che nella versione XM.

1 Mathesis - Forlì.

La principale preoccupazione degli Autori di Derive è comunque stata semprequella di mantenere la dimensione del programma il più possibile compatta,curando particolarmente l'efficienza degli algoritmi utilizzati. Per ridurre al minimo l'occupazione di memoria, il programma è scritto inµ-LISP e successivamente tradotto in Assembler.

La seguente tabella mostra le dimensioni del codice di Derive in alcune delleversioni che si sono succedute; si noti che malgrado il notevole aumento dipotenzialità tali dimensioni si sono mantenute relativamente molto piccole.

Versione di Derive

Dimensioni del progammain byte

1 214160

2 229536

2.08 237536

2.5 241840

2.59 255648

3.01 291248

Più o meno nello stesso periodo di tempo hanno visto la luce e si sono evolutianche altri programmi di elaborazione simbolica 2 ben più potenti, ricchi difunzioni e di possibilità di programmazione e quindi più adatti ad un uso"professionale": ad esempio Mathematica di Wolfram o Maple V della WaterlooSoftware; si tratta però di programmi assai più impegnativi per l'utente esoprattutto richiedono imponenti risorse hardware: grandi quantità di memoria,enormi spazi nel disco rigido e processori sempre più potenti e veloci.

Derive, mantenendosi fedele alle sue caratteristiche e grazie ad una intelligentepolitica commerciale che privilegia le installazioni multiple, comeaule-laboratorio di informatica e organizzazioni scolastiche in genere, non hamolto risentito di questa concorrenza e ha ormai conquistato la supremazia nelcampo della didattica nella Scuola Secondaria Superiore: in alcuni paesi comel'Austria, la Slovenia ed il Portogallo è stato adottato ufficialmente dai rispettiviMinisteri della Pubblica Istruzione; sperimentazioni su larga scala sono in corsoin Francia, Germania e Gran Bretagna, solo per citare alcuni esempi.

2 CAS, Computer Algebra Systems, nel gergo degli addetti ai lavori.

Esistono inoltre documentazioni sulla sua utilizzazione didattica in Polonia,Russia e perfino nella lontana Cina.

Vedremo ora alcune delle principali innovazioni della versione 3.0 rispetto allaprecedenti versioni di questo prodotto.GRAFICA

Il grafico di y = x2 . . . . prima della cura:

e . . . dopo la cura:

I miglioramenti più appariscenti sono nella grafica; come si vede dalleprecedenti immagini, è stato inserito nel menu Plot il sottomenu aXes grazieal quale ora è possibile dare un nome agli assi (ad es. tempo e spazio; i nomi di

default sono, ovviamente, x ed y): questi nomi compariranno anche nelloschermo di grafica insieme alla graduazione degli assi stessi.Inoltre è possibile dare un'opzione di autoscaling che modifica automaticamentela scala in modo che il grafico utilizzi al meglio lo schermo.

Stampa e cattura della schermoUn'altra importante novità, assai desiderata da tutti gli utenti di Derive, è lapossibilità di stampare o salvare in un file le schermate di Derive, soprattuttoquelle di grafica. Fino alla versione 2.5 ciò era possibile solo con appositiprogrammi di "cattura" dello schermo, non sempre disponibili o di facile uso.Ora finalmente è possibile con il comando Transfer Print Screen. Naturalmente sarà necessario specificare una volta per tutte il tipo di stampantedisponibile ed alcune informazioni accessorie (dimensioni del foglio, sfondobianco o nero, orientazione della carta ecc.). Da notare che ora è anchedisponibile il driver per la stampante HP DeskJet 500 C che permette diottenere la stampa a colori.

Naturalmente restano attivi anche i comodi comandi diretti, già disponibili apartire dalla versione 2.57, <SHIFT> + <F10> e <SHIFT> + <F9> cheforniscono rispettivamente la stampa dell'intero schermo o della sola finestraattiva (quindi senza che compaia il menu).Con la pressione dei tasti <CTRL> + <F10> e <CTRL> + <F9> si ottienerispettivamente il salvataggio dello schermo o della finestra attiva in un file informato .TIF che viene riconosciuto dalla maggior parte dei programmi digrafica, di editoria e di elaborazione di testo e può quindi facilmente esseremodificato o direttamente inserito in un qualunque documento. I file così salvatiportano il nome DERIVE1.TIF, DERIVE2.TIF e così via, in successione; èanche possibile ora modificare da menu il nome con cui i file verranno registrati.

Due nuove modalità graficheNel menu Options State sono ora disponibili due nuove modalità difunzionamento della grafica: il Trace Mode ed il Follow Cross Mode.In modalità Trace (traccia), premendo i tasti cursore destro o sinistro, ilcursore grafico, rappresentato da un quadratino, si sposta nella direzione volutamuovendosi lungo il grafico della curva. Poiché le coordinate della posizione delcursore appaiono, come di consueto, nella riga di stato posta nella parte bassadello schermo, ciò permette di esaminare l'andamento dei valori assunti dallafunzione, di individuare, sia pure approssimativamente, le coordinate di punti diintersezione, di estremanti ecc.Per esaminare l'andamento di un grafico al di fuori della "finestra" standardvisualizzata dello schermo senza modificare la scala, nelle precedenti versioni

era necessario spostare il cursore grafico al di fuori della finestra e impartire ilcomando Center per posizionare il centro dello schermo in corrispondenzadell'attuale posizione del cursore. Ora con la modalità Follow Cross diventatutto più facile: è sufficiente spostare il cursore al di fuori dello schermo perchéautomaticamente questo si sposti in modo da visualizzare la parte di grafico ovesi trova il cursore, che prima non appariva.

Curve con equazione implicitaUn'altra interessante e nuova caratteristica della grafica di Derive è la capacitàdi tracciare anche il grafico di curve implicite; ad esempio è ora possibiletracciare il grafico anche di rette perpendicolare all'asse delle ascisse, conequazione del tipo x = k; nell'immagine qui sotto appare una lemniscata di JacobBernoulli e la relativa equazione:

Attenzione, non sono tutte rose e fiori: per tracciare questo grafico un 486 a 33MHz impiega quasi tre minuti di lavoro!

EDITING ED INTERFACCIA UTENTE

L'interfaccia utente di Derive appare ad un primo impatto piuttosto scomoda,soprattutto per chi si è ormai abituato all'uso del mouse; in realtà, dopo unbreve periodo di uso, ci si rende conto che l'interfaccia è estremamentefunzionale, quasi geniale nella sua semplicità, soprattutto nei rapporti tra linea di

editing e foglio di lavoro. Non mancavano però alcune spigolosità (ad esempiol'impossibilità di utilizzare i tasti cursore nella linea di editing) che sono stateperò eliminate o almeno attenuate nelle ultime versioni.

Help in lineaL'Help di Derive è una voce del menu ed è quindi accessibile con le stesseprocedure con cui si accede alle altre voci come Author, Plot ecc.; nelleprecedenti versioni di Derive se ad esempio l'utente sta digitando un espressionein Author ed ha un dubbio sulla sintassi di una funzione predefinita, perconsultare l'Help era costretto ad uscire dal modo Author. Ora invece è sufficiente premere il tasto funzione <F1>.L'Help rimane molto spartano e non sensibile al contesto come invece avviene inaltri programmi, tuttavia si tratta ugualmente di un notevole passo avanti.

Numerazione delle lineeUn "listato", o "foglio di lavoro" di Derive è formato da alcune linee ciascunadelle quali è individuata da un numero progressivo. Fin dalla prima versione diDerive è possibile eliminare una o più linee con il comando Remove. Era perònecessario fare molta attenzione a quali linee venivano eliminate perché ilcomando non ammetteva pentimenti. Ora è disponibile il comando Unremove che permette, anche a distanza ditempo (ovviamente nella stessa sessione di lavoro) di reinserire nella stessaposizione o anche in un'altra le linee cancellate.Dopo aver utilizzato i comandi Remove o moVe, la numerazione delle linee nonveniva modificata se non al momento dell'eventuale salvataggio in un file, ilnumero della linea non corrispondeva più alla sua effettiva posizione nel fogliodi lavoro creando così un'antipatica successione di linee in cui alla linea 2 potevaseguire la linea 9, poi la linea 5 e così via.Ora con il comando Manage Renumber è finalmente possibile rinumerare lelinee secondo la successione dei numeri naturali.

Uso del simbolo di uguaglianzaSe una espressione digitata in Author viene fatta seguire dal simbolo di uguale,questa appare nell'ambiente di Algebra come uguaglianza; il primo membrodell'uguaglianza è l'espressione digitata; il secondo membro è la stessaespressione automaticamente semplificata. Ad esempio digitando 2 + 2 = appare 2 + 2 = 4 e digitandoint(x^2,x)= si ottiene ∫ x2dx = x3/3.

Caricamento dei fogli di lavoro

Come sempre con il comando Transfer si possono caricare file di Derive olibrerie di funzioni (estensione .MTH), file demo (estensione .DMO) ed infinefile di dati (estensione .DAT). L'utente però doveva già conoscere il nomeesatto del file da caricare, oppure cercarlo con il comando DIR del DOS dopoessere momentaneamente usciti da Derive con il comando Options Execute.Ora finalmente è sufficiente premere il tasto funzione <F1> dopo aver dato ilcomando Transfer per ottenere l'elenco dei file presenti nel disco o nellasubdirectory attiva; evidenziando il nome del file con i tasti cursore, basteràpremere <Invio> per ottenere il caricamento del file stesso.

Caricamento multiploFin dalle prime versioni era possibile caricare il programma Derivecongiuntamente ad un preesistente foglio di lavoro: ad esempio digitando, inambiente DOS, Derive integra.mth, veniva caricato Derive e,contemporaneamente, il file integra.mth. Ora è possibile caricare più fileindicando i loro nomi in successione e addirittura, con appositi switch (cioèfacendo seguire i loro nomi da /U, /D ecc.) si possono caricarecontemporaneamente anche librerie di utility, demo ecc.

Compressione di espressioniSarà certo capitato spesso a che usa Derive di imbattersi in espressioni lunghepiù di 80 caratteri e che quindi non possono essere contenute nella lineamostrata sullo schermo; Derive non va "a capo", quindi la parte di espressioneche "esce dallo schermo" non può essere esaminata se non richiamandola nellalinea di editing con il tasto <F3> e percorrendola con i tasti di movimento delcursore.Il problema di fondo non è stato risolto, né forse può esserlo (si ricordi chel'estrema compattezza di Derive resta per i suoi Autori un requisito prioritario),ma può essere ora parzialmente risolto in molti casi selezionando OptionsOutput Format Compressed: in questa modalità vengono eliminatidall'espressione tutti gli spazi superflui inseriti per una sua migliore leggibilità.Spesso ciò è sufficiente per consentire la sua visualizzazione in una sola linea dischermo. Si veda ad esempio la schermata sottostante:

File demo e comando AnnotateFin dalla versione 2 esiste in Derive la possibilità di visualizzare file demo,individuati dall'estensione .DMO; un certo numero di file demo sono fornitiinsieme al programma. Lo scopo di un file demo è quello di mostrare leespressioni presenti nel file, semplificarle automaticamente e accompagnarle conuna annotazione che compare nella parte bassa dello schermo, al posto delmenu. Oltre che a mostrare le capacità di Derive, un file demo può servire, in unmodo piuttosto rozzo a dire il vero ma in certi casi efficace, per creare una sortadi tutorial che un alunno può utilizzare autonomamente.Finora era piuttosto complicato da parte dell'utente creare un file demo: eranecessario intervenire dall'esterno sul file con un editor per aggiungere leannotazioni precedute da un "punto e virgola", poi salvare il tutto in formatoASCII.Ora si può fare tutto in modo molto più semplice senza uscire dall'ambienteDerive: dopo aver digitato l'espressione che si desidera semplificare, si deveselezionare Manage Annotate e digitare il commento desiderato. Si dovrà poisalvare il file con l'estensione .DMO.Il comando Manage Annotate è comunque disponibile per aggiungerecommenti ad una espressione anche indipendentemente dalla creazione di un file demo.

PROGRAMMABILITA'

Anche se la programmabilità di Derive non è particolarmente sviluppata, alcunimiglioramenti sono stati fatti dopo l'introduzione, a partire dalla versione 2,

della struttura condizionale (funzione IF) e dei cicli enumerativo e nonenumerativo (funzioni VECTOR ed ITERATE).

Assegnazioni a variabili di statoLe variabili di stato sono variabili predefinite che controllano lo stato delsistema: ad esempio la variabile PrecisionDigits contiene il numero dellecifre decimali significative che appaiono in modo approssimato (il valore didefault è, come noto, 6); la variabile InputBase controlla la base in cui sonoimmessi i valori numerici (il valore di default è 10). Il valore contenuto nellevariabili di stato è registrato nel file Derive.ini.Finora era possibile modificare il valore di queste e di altre variabili di stato soloagendo sull'apposito campo del menu; a partire da questa versione è possibilemodificarle direttamente dalla linea di editing con una vera e propria istruzionedi assegnazione: ad esempio digitando

PrecisionDigits := 20si porta a 20 il numero delle cifre significative ottenute semplificando unaespressione con il comando approX. Poiché nel manuale non esiste nulla di simile, crediamo di fare corsa gradita aiLettori fornendo loro una tavola degli identificatori delle variabili di stato e deipossibili valori che possono essere loro assegnati, seguiti dalle corrispondentivoci di menu:

Variabile di stato Valori ammissibili comando nel menuPrecision Approximate, Exact, Mixed Options Precision

PrecisionDigits n (con n intero positivo) Options Precision

Notation Decimal, Mixed, Rational,Scientific

Options Notation

NotationDigits n (con n intero positivo) Options Notation

InputBase Binary, Octal, Decimal,Hexadecimal, n (con n intero positivo)

Options Radix

OutputBase Binary, Octal, Decimal,Hexadecimal, n (con n intero positivo)

Options Radix

InputMode Character, Word Options Input

CaseMode Insensitive, Sensitive Options Input

ArrowKeyMode LIneEdit, Subexpression Options Input

DisplayFormat Normal, Compressed Options Output

TimesOperator Asterisk, Dot, Implicit Options Output

Branch Principal, Real, Any Manage Branch

Exponential Auto, Collect, Expand ManageExponential

Logarithm Auto, Collect, Expand Manage Logarithm

Trigonometry Auto, Collect, Expand ManageTrigonometry

Trigpower Auto, Sines, Cosines ManageTrigonometry

Angle Degree, Radian ManageTrigonometry

E' importante che gli identificatori delle variabili siano digitati esattamente comequi indicato, in particolare per quanto riguarda le lettere maiuscole e minuscole.

Purtroppo mancano ancora analoghe assegnazioni per le variabili di statodell'ambiente di grafica: ad esempio sarebbe comodo predisporre l'uso dellecoordinate polari con l'assegnazione, ad esempio, Coordinates := Polar,senza dover agire manualmente sulle opzioni del menu.

Le funzioni ITERATE ed ITERATESFin dalla versione 2 in Derive sono presenti le funzioni ITERATE edITERATES che forniscono rispettivamente il valore finale ed un vettore contutti i valori intermedi di una funzione f(x) iterata, cioè che assume comeargomento il valore di f(x) stesso a partire da un dato valore iniziale. Può esserespecificato il numero di iterazioni desiderato, altrimenti il ciclo ha termine soloquando si ottengono due valori consecutivi uguali.Ad esempio

ITERATES(1+1/x,x,2,5)calcola la frazione continua

1 + 11 + 1

1+ 1

1+ 1

1+12

che equivale a 21/13.

Con la nuova versione di Derive è possibile operare anche con vettori:Ad esempio

ITERATE([k,j+k],[j,k],[0,1],200)fornisce il 200-esimo ed il 201-esimo numero di Fibonacci. Per i curiosi, ilrisultato è il seguente:

[280571172992510140037611932413038677189525, 453973694165307953197296969697410619233826]

Un altro esempio di applicazione è il seguente:

ITERATES(1.1 [x,y].m,[x,y],[2,0],40)fornisce una successione di vettori ciascuno dei quali, a partire dal vettore [2,0],si ottiene dal precedente ruotandolo di π/6 e moltiplicandolo per lo scalare 1.1; La rotazione viene realizzata attraverso il prodotto del vettore per la matrice mè così definita

cos α sinα−sinα cos α

con α := π/6.Selezionando l'opzione Mode: Connected si ottiene il seguente grafico, checorrisponde a punti situati sulla spirale logaritmica di equazione polare

:ρ = 2 (1.1)ϑ

π/6

FUNZIONI PER MANIPOLARE ESPRESSIONI

Sono ora predefinite numerose funzioni per la manipolazione di espressioni;citiamo di seguito alcune di esse: NUMERATOR e DENOMINATOR che forniscono rispettivamente numeratore e

denominatore del loro argomento; FACTOR che scompone in fattori primi il suo argomento (numero intero o

polinomio); QUOTIENT e REMAINDER che forniscono rispettivamente quoziente e resto

della divisione tra i due polinomi in argomento;

GCD e POLY_GCD che forniscono il massimo comun divisore (greatestcommon divisor) rispettivamente dei numeri interi o dei polinomi inargomento;

LHS e RHS che forniscono rispettivamente primo e secondo membro (lefthand side e right hand side) della equazione in argomento; tale equazionepuò anche essere già stata scritta in precedenza e si può fare riferimento adessa semplicemente indicando il numero di linea corrispondente;

EXPAND e APPROX che rispettivamente sviluppano e forniscono un valoreapprossimato dell'espressione in argomento;

TERMS che distribuisce in un vettore gli elementi di una espressione algebricaordinati rispetto ad una variabile prefissata. Ad esempio

TERMS(EXPAND((a+b+1)^3,a)) fornisce il vettore:

[a3, 3a2(b+1),3a(b+1)2,(b+1)3];

OPERATORI E FUNZIONI LOGICHE

Gli operatori logici AND, OR, XOR, NOT, IMP erano già presenti, ad eccezionedell'ultimo, in precedenti versioni di Derive ma erano utilizzabili in pratica soloall'interno della funzione IF. Ora sono direttamente utilizzabili in espressionilogiche; ad esempio

a OR (b AND b) si semplifica in: a OR b,NOT(a AND b) si semplifica in: NOT a OR NOT b,

coerentemente con la legge di De Morgan.

Esiste anche la funzione predefinita TRUTH_TABLE che fornisce la tavola diverità dei suoi argomenti sotto forma di elementi di una matrice; ecco adesempio la dimostrazione che a ⇒ b equivale a (¬ a) ∨ b:

FUNZIONI PER MANIPOLARE VETTORI E MATRICI

INSERT_ELEMENT, DELETE_ELEMENT, REPLACE_ELEMENT cherispettivamente inseriscono, cancellano o sostituiscono un elemento di unvettore o di una matrice.Ad esempio se è:

v :=

4 5 67 8 910 11 12

il comando REPLACE_ELEMENT([1,2,3],v,2) produce una nuova matriceottenuta da quella data sostituendo alla seconda riga quella indicata:

;

4 5 61 2 3

10 11 12

SUB, indicato dopo una matrice, permette di accedere agli elementi dellamatrice stessa. Ad esempio digitando v sub1 sub3 e selezionandoSimplify, si ottiene 6, cioè l'elemento della matrice v, prima definita, situatonella prima riga e nella terza colonna;

SELECT fornisce un vettore che riporta tutti gli elementi di un dato vettore cheverificano una specificata condizione. Ad esempio

SELECT(x<10,x,[9,7,11,13])fornisce un nuovo vettore formato da tutti gli elementi del vettore[9,7,11,13]che verificano la relazione x<10, vale a dire il vettore [9,7].Come esempio di uso di SELECT suggeriamo la funzione

DADO(a,n):=DIMENSION(SELECT(x=a,x,vector(random(6)+1,k,1,n)))

che simula il lancio di un dado n volte e conta il numero dei lanci che hannofornito la faccia a.

Test di primalità e nuove caratteristiche di IF e di VECTORLa funzione predefinita PRIME(k) fornisce il booleano true oppure false aseconda se l'argomento k è primo oppure no. Il test viene effettuato utilizzandoper 5 volte (valore di default, modificabile dall'utente) un test di tipoprobabilistico. 3

3 Per maggiori dettagli sui criteri probabilisti di primalità, vedi, adesempio, G. C. Barozzi, "Aritmetica, un approccio computazionale" ed.

Ad esempio semplificando la seguente istruzione:SELECT(PRIME(k),k,1000,1200)

si ottiene la tavola dei numeri primi compresi tra 1000 e 1200.

La funzioneQUANTI_PRIMI(a,b):=SUM(IF(PRIME(n)),n,a,b)

conta quanti sono i numeri primi ≥ a e ≤ b.Questa funzione sfrutta anche le due nuove caratteristiche della funzione IF:quella di assumere il valore numerico 1 se l'argomento è vero, 0 se l'argomentoè falso e quella di poter accettare anche un solo argomento, costituito da unaproposizione; sintatticamente questo era lecito anche in precedenti versioni diDerive, ma senza produrre alcun risultato; ora invece fornisce, come si è detto,1, se la proposizione è vera, 0 se è falsa.

Un altro esempio di uso del test di primalità è il seguente:

VECTOR(x^2,x,SELECT(PRIME(n),n,100))

che costruisce un vettore con quadrati dei numeri primi compresi tra 1 e 100; inquesto esempio si sfrutta la nuova caratteristica della funzione VECTOR diaccettare come terzo argomento un vettore (in questo caso quello costruitodalla funzione SELECT); l'operazione indicata come primo argomento (in questocaso l'elevamento al quadrato) si "distribuisce" lungo gli elementi del vettorestesso.

MENU PERSONALIZZATI

Osservate la seguente immagine; notate nulla di strano?

Zanichelli.

Ebbene, sì: il menu è in italiano e comprende solo alcune voci selezionate!

Negli annunci dell'imminente uscita di Derive versione 3 una delle nuovecaratteristiche più fortemente evidenziate era la possibilità di creare menupersonalizzati, modificando i nomi delle voci di menu o, cosa ancora piùimportante nell'ambiente scolastico, facendo comparire solo i comandi desiderati(ad esempio per inibire agli studenti l'uso dei comandi soLve e Factor).

Purtroppo nel manuale delle versioni 3 e 3.01 attualmente in distribuzione nonappare alcun cenno di questa caratteristica. La possibilità tuttavia esisteeffettivamente, anche se realizzarla è un po' laborioso: occorre creare (con unqualunque editor di testi in ASCII) un file con l'estensione .MEN nel qualedevono comparire le voci di menu in italiano e le corrispondenti in inglese,rispettando una rigida sintassi (pena, a volte, un crash del sistema), comenell'esempio che segue con il quale si è ottenuto il menu che appare nellaprecedente figura.

Il file dovrà essere salvato con il nome, ad esempio, ITALIANO.MEN, nellastessa directory di Derive. Per attivare Derive con il nuovo menu si dovràdigitare, in ambiente DOS, DERIVE ITALIANO.MEN.

(("Autore" "Author")("aiUto" "Help") ("Semplifica" "Simplify") ("sOstituisci" "Manage" "Substitute") ("fInestra" "Window") ("Trasferisci"

("Carica" ("Foglio" "Transfer" "Load" "Derive")("Utilità" "Transfer" "Load" "Utility"))

("Salva" ("Derive" "Transfer" "Save" "Derive")))

("Fine" "Quit"))

Si faccia attenzione alla disposizione delle parentesi che racchiudono, oltreall'intero elenco dei comandi, anche ogni singolo comando (con la relativatraduzione), concatenazione di comandi o sottomenu.

Così ora è possibile

tradurre una voce del menu scrivendo tra parentesi il nuovo nome seguito dalvecchio, chiusi tra virgolette; es.: ("Autore" "Author");

nascondere voci del menu: tutte le voci che non compaiono nel file .MEN nonappariranno sullo schermo né saranno accessibili dall'utente;

modificare e/o nascondere anche voci di sottomenu; vedi nel file di esempio lacostruzione dei sottomenu ridotti del menu Transfer che consentono lelettura dei soli file di Derive e di Utility ed il salvataggio dei fogli di lavorosolo come file Derive;

cambiare l'ordine delle voci del menu; queste infatti appaiono sullo schermonello stesso ordine con cui sono state scritte nel file .MEN;

modificare la struttura stessa dell'albero dei menu, ad esempio portando alprimo livello comandi che compaiono in livelli successivi; vedi la vocesOstituisci che porta al primo livello di menu il comando Substituteche appartiene al sottomenu Manage;

mantenere parte dei menu in inglese; infatti se si modifica solo la voce delmenu principale, il relativo sottomenu rimane quello originale in linguainglese; nell'esempio sopra riportato, rimangono in inglese i sottomenu diaiUto e di fInestra.

Gli unici comandi che, malgrado i ripetuti tentativi, non sono riuscito a tradurremantenendo le medesime funzionalità, sono i data entry fields.

Si tratta, come dice il nome, di campi per l'inserimento di dati, come ad esempioil campo Digits nel menu Options Precision che specifica il numero dicifre che si vuole far apparire, o il campo At coloumn nel menu Window SplitVertical per specificare la posizione della suddivisione dello schermo in duefinestre.Forse ciò dipende dal fatto che non si tratta di vere e proprie comandi di menu(infatti non sono riportati come tali nel Manuale) o forse richiedono una sintassiparticolare diversa da quella per la modifica delle altre voci di menu.Speriamo che nelle prossime versioni siano fornite nella documentazione, disolito molto precisa ed esauriente, chiare indicazioni sulla costruzione di un file.MEN e che sia presente nel disco un file di questo tipo, anche se in inglese, perrendere più facili le personalizzazioni senza dover riscrivere ex novo tutto ilmenu.

CONCLUSIONI

Gli Autori di Derive hanno il merito di essere riusciti a contenere le dimensionidel programma pur avendo aumentato in modo considerevole le sue capacità.La versione XM è quindi da consigliare solo a chi ha effettiva necessità di usaregrandi quantità di dati o di manipolare matrici di grandi dimensioni; per l'uso"normale" nella Scuola Secondaria Superiore la versione Classic serve ancoraegregiamente alla scopo; inoltre, malgrado le smentite ufficiali, Derive XM èeffettivamente più lento della versione Classic, in modo quasi impercettibilenella maggior parte dei casi, in modo più evidente in alcune operazioni come adesempio il salvataggio su file di una schermata.

La nuova versione di Derive ha indubbiamente accentuato la sua vocazionescolastica poiché la scuola di qualsiasi livello, come si è detto nell'Introduzione,è ormai diventato il principale ambiente di utilizzazione del programma.Derive si conferma quindi un prodotto estremamente utile e versatile che puòessere prezioso in molte fasi dell'apprendimento della matematica: l'introduzionedi argomenti, la formulazione di congetture, la verifica dei risultati ed ilsupporto nell'autoapprendimento.

Summary

This is a survey of Derive version 3, of some of its new features,functions, user-interface and menus.A special attention is paid to its new programming capabilities.Some information is given about undocumented features which aredescribed neither in the manual nor in the READ.ME file.