Newsgroup: it.comp.lang.pascal
Titolo: Limiti di funzioni

Salve a tutti,
devo scrivere un programma che permetta di inserire una funzione qualsiasi e
ne calcoli il limite. Premettendo che non ho mai usato il Pascal se non per
scrivere stupidi programmi commissionatimi a scuola, e quindi le mie
conoscenze risultano piuttosto scarse, ecco il mio problema: non il calcolo
del limite (piuttosto banale), quanto l'immissione di una funzione casuale.
Gradirei qualche suggerimento su questa parte di programma.
Grazie e ciao
Danilo

...

Penso che la cosa sia tutt'altro che banale. Devi realizzare un
valutatore d'espressioni che non è una cosa che si fa tutti i giorni.
Se le funzioni appartenessero ad un insieme definito (anche ampio, ma
comunque limitato) te la caveresti con un "CASE". Se invece nulla è
definito a priori (tipo sin(ln(1/(x+1)))* ... ) devi costruirti un
albero binario con gli operatori, da percorrere ogni volta che devi
calcolare il valore della funzione. Non mi viene in mente nulla di
più semplice.
--
Virgilio Lattanzi          Harpax
Phone 
+39 0733 816872
      via Fontanella, 55
Fax   
+39 0733 819133
      62012 Civitanova Marche
www.harpax.com
             ITALY

 .. non ti viene in mente nulla di piu' semplice perche' non c'e'.
 Perlomeno con i compilatori .. con i linguaggi interprete ovviamente la
cosa cambia.
 un trucco col c e quello di usare un exec che all'immissione della funzione
compili pure questa sul momento .. il c infatti puo' sfruttare librerie non
pre-dichiarate... ma non e' banale la cosa!
 Ad esempio se ti  ricordi CROBOT.. funzionava cosi .. il programma in c
compilato all'immisione dello pseudo programma (o della pseudo funzione) la
'trasformava' in c standard poi la compilava con un compilatore limitato ma
'bastante' e quindi la prendeva come libreria obj.
 .. io feci cosi' il mio primo programma di gemetria analitica .. ai tempi
dei dinosauri sempre! ;-)

Qualche annetto fa realizzai un programma che data una funzione in
input del tipo f(x) ne disegna sullo schermo l'andamento. F(x) poteva
essere naturalmente di qualsiasi tipo e composizione.
Il nocciolo del programma sfruttava una funzione che dato un X
calcolava il valore della funzione in quel punto.
Il programma sfruttava una funzione ricorsiva (da li non si scappa,
esistendo delle parentesi di priorita' la ricorsione la devi
utilizzare o per lo meno simulare-))))) con l'aggiunta poi di altre
funzioni e procedure d'appoggio che riconoscevano nella stringa le
varie funzioni, costanti, operatori, parentesi.
Non so che altro dire, descrivere ulteriormente quello che ho fatto e'
difficile, soprattutto adesso che e' passato del tempo e non mi
ricordo piu' bene i particolari del funzionamento e le problematiche
incontrate.
PS L'eseguibile del programma che realizzai l'ho inserito nel mio sito
e potra' essere utile a qualcuno che sta studiando analisi per
verificare lo studio di funzioni.
Ciao,  Fabio.
fabi...@rocketmail.com

 Per risolvere il problema basterebbe poter compilare un prog con una unit
dichiarata ma non presente come col c e poi all'immissione della fn
compilare col ctp in linea la medesima come unit.
  ma credo che il pascal non implementi le chiamate indirette agli object.
(posso sbagliare! .. in effetti e' solo una mia supposizione ma non ne sono
sicuro!)
 sai come fa il compiler del c++ ?
ti dice..
  .. ALT HAI COMMESSO UN ERRORE GRAVISSIMO!!.. va beh .. io te lo compilo
ugualmente poi te la vedi tu! ;-))  .. e sei a posto!