martedì 30 novembre 1999















inseriamo in Derive le seguenti espressioni

 

  espressione(x) := x^2


  inizio := 0


  fine := 10


  passo := 2


  lista := VECTOR(espressione(x) , x , inizio , fine , passo)


  lista


 


 la valutazione della variabile  "lista"  tramite il pulsante  "="  da' :


[0, 4, 16, 36, 64, 100]


 


lo "schema di flusso" del processo effettuato dall'espressione


 VECTOR(espressione(x) , x , inizio , fine , passo)


 e' il seguente :






















v := [ ]


x := inizio


(1)       condizione :      x <= fine    ?



no


v := append(v,[espressione(x)])


l'output del processo e' :     v


x  :=  x + passo


torna a (1)


 

 Un modo per realizzare ("implementare") tale processo (algoritmo) in DERIVE 5 e' digitare nella riga di editing (ovviamente dopo aver inserito le espressioni che definiscono espressione(x), inizio, fine e passo) l'espressione :

 p := [v := [ ] ; x := inizio ; IF(x <= fine, [v := APPEND(v, [espressione(x)]) ; x := x + passo ; pSUB3SUB1], v)]


(seleziona tutta l'espressione e dopo averla copiata con CTRL+C incollala con CTRL+V nella riga di editing di DERIVE, quindi premi INVIO)


con tale espressione selezionata, valutarla tramite il pulsante "=" ;  si otterra' la "traccia" dell'algoritmo.


Un altro modo, piu' elegante e veloce, per implementare l'algoritmo e' definire la seguente funzione ciclo(v,x) :


   ciclo(v, x)  :=  IF(  x <= fine  ,  ciclo( APPEND(v, [espressione(x)]) ,  x + passo )  ,  v )


e quindi valutare con il pulsante "=" l'espressione :


ciclo( [ ] , inizio )


Prova a inserire tali due espressioni nella riga di editing di DERIVE e a valutare la seconda con "=".


Questo secondo procedimento non richiede di dare un nome all'intero programma (sopra era chiamato p) per indirizzarne una parte a cui ritornare ciclicamente, ma isola la parte del processo che si ripete ciclicamente e la definisce come funzione degli ingressi ("input") che tale ciclo deve elaborare, ingressi che vengono automaticamente modificati dalla funzione stessa nel suo "corpo" senza riassegnamento di variabili. Infine tale funzione viene applicata agli input di partenza che sono la lista vuota [ ] e il numero contenuto nella variabile "inizio" .


 

1 commento:

  1. E' possibile e comodo inserire le definizioni tutte insieme in una lista: basta digitare nella riga di editing di DERIVE il "vettore":
    [espressione(x) := x^2, inizio := 0, fine := 10, passo := 2] oppure, in colonna:
    [espressione(x) := x^2; inizio := 0; fine := 10; passo := 2].

    RispondiElimina