Newsgroup: it.comp.lang.c++
Titolo: Inserire una funzione matematica

Come si fa ad inserire una funzione mateamatica in una variabile reale in
modo che il programma la possa stampare come ax^2+bx+c ad esempio sia anche
in grado si calcolarla poi in un qualsiasi valore di x?


Temo proprio che tu abbia sbagliato linguaggio...
Al limite puoi avere una variabile stringa, ma non sarà mai valutata come
espressione.
Una cosa come:
formula = "X^2";
X=1;
y=eval (formula);
non funziona in C++
Certo, nessuno vieta di cercare di implementarla, ma...
--
Alessandro Monti

Alessandro scrive, rispondendo ad altro post:

La scrittura di un interprete all'uopo e` prevista proprio nella
prossima puntata
del mio tutorial di programmazione Win32 in C, che sto pubblicando sul
mio
sito 
http://aleax.supereva.it
; l'interprete e` gia` scritto e testato,
devo solo
mettere a punto l'HTML dei relativi capitoli, quindi la pubblicazione e`
prevista
nel giro di pochi giorni (sono cose che faccio a tempo perso, quindi la
sera
e i weekend, e solo quando non vado invece al cinema con la mia ragazza,
o
a giocare un torneo di bridge, ecc, da cui il previsto ritardo).
Postero` l'URL esatta non appena il prossimo capitolo sara` in linea.
Credo che questa domanda, e altre di simile tenore, sia nella classifica
delle piu` frequenti su questo gruppo (di certo, lo erano un annetto fa,
quando frequentavo molto i gruppi di questo tipo), quindi potrebbe anche
convenire inserirla nella FAQ assieme alle relative risposte, mi pare.
Alex

> Qual'è allora il linguaggio adatto?
Quasi tutti quelli interpretati o basati su P-code. (java escluso, credo)
Io riesco a farlo in Visual FoxPro, che ha ereditato la funzione dal
Clipper.
Credo comunque che anche VB abbia qualcosa di simile, ma non lo conosco
abbastanza per dirtelo con sicurezza.
Se hai a disposizione il manuale/help in linea, prova a cercare qualche
funzione del tipo EVAL, EVALUATE, ecc.
Qualche linguaggio usa notazioni differenti, per cui qualcosa del tipo:
formula = "X^2"
X=2
Y = #X
indica con # che deve assegnare non il contenuto della variabile, ma il
valore risultante dalla valutazione dell'espressione ivi contenuta.
Ciao
--
Alessandro Monti

 
Che io sappia, nessun linguaggio che ha in concetto di "variabile
reale" (non contrapposta a "variabile fittizia", immagino, bensi`
a variabili di altri tipi, come "intera", "stringa", eccetera) e` adatto
ad ospitare "una funzione matematica" in variabili di questo tipo.
Un linguaggio dotato di interprete sara` perfettamente adatto a
mantenere una funzione (anche "matematica") in una variabile
(se, se un qualche tipo ha, sara` probabilmente "stringa") e
valutarla quando ti serve.
Ad esempio, adattissimo all'uopo e` il linguaggio Perl (vedi il
gruppo it.comp.lang.perl), che ti permettera`, con "eval", di fare
quasi cio` che desideri (eccetto che Perl non ha il concetto di
"variabile reale" -- una variabile scalare puo` contenere valori
reali, stringhe, e riferimenti, in modo del tutto intercambiabile).
Alex


Incidentalmente, il mio piccolo interprete e` ora in linea,
ai capitoli 27-28 del mio tutorial sulla programmazione di
Win32 API (in italiano), alle URL
http://aleax.supereva.it/TutWin32/r27.htm
e
http://aleax.supereva.it/TutWin32/r28.htm
Offre solo le 4 operazioni aritmetiche, ma almeno e`
piccolino:-).
Alex

Forse piu' che un linguaggio vero e proprio quello che ti serve e' uno
strumento specifico, tipo Mathematica. Purtroppo non ne so praticamente
niente, quindi non sono in grado di darti informazioni in piu'...
Ciao,
Nicola

In realtà sto facendo un programma per la determinazione delle soluzioni
reali di una funzione, che deve essere qualunque nel grado e nel tipo
(polonomiale, razionale, irrazionale, logaritmica o esponenziale).
Nicola Musatti <Nicola....@ObjectWay.it> wrote in message
383269B4...@ObjectWay.it...


 Come si fa ad inserire una funzione mateamatica in una variabile reale in


Mmmh, parli di soluzioni reali di funzioni qualsiasi... Mi sa che ti sei
imbarcato in un bel problema! Vediamo se ho capito: Dato ad esempio:
y = sin(log x^2)
tu vuoi risolvere
sin(log x^2) = 0
Se e' cosi' direi che anzitutto ti serve un buon testo di analisi
numerica: magari gli accademici che frequentano il newsgroup possono
darti qualche indicazione.
Se ci limitiamo al problema di calcolare il valore della funzione in
qualsiasi punto la cosa e' un po' piu' semplice. Prima di tutto, se il
C++ non e' un requisito fondamentale, in linguaggi come il Lisp il
problema si riduce ad una traduzione dell'espressione in forma prefissa:
una cosa tipo
(SIN (LOG (EXP X 2)))
E' quasi un espressione valida del linguaggio, che l'interprete potrebbe
calcolare.
Ritornando invece al C++ il problema e' tradurre l'espressione scritta
al terminale in qualcosa che si possa eseguire. Un consiglio puo' essere
quello di procurarti il libro "The C++ Programming Language" 3 ed. di B.
Stroustrup, che oltre ad essere un riferimento fondamentale sul
linguaggio, presenta come esempio nei primi capitoli un programma per
calcolare espressioni aritmetiche, che potrebbe costituire la base del
tuo.
Spero di essere stato di aiuto. Buon lavoro!
Ciao,
Nicola

| > > Come si fa ad inserire una funzione mateamatica in una variabile reale
| > > in modo che il programma la possa stampare come ax^2+bx+c ad
| > > esempio sia anche in grado si calcolarla poi in un qualsiasi valore di
x?
|
| Qual'è allora il linguaggio adatto?
Penso proprio che dovresti usare Mathematica, un gran programma... quasi un
linguaggio di programmazione...
--
Ciao, ciao
E-mail: 
pi....@bigfoot.com
        (se 'rispondi al mittente', togli NO_SPAM)
HomePage: 
http://web.tiscalinet.it/pavelo
ICQ #37941259
"Non si rese conto di aver preso la decisione
finché il chiarore dell'alba invase tutto il cielo:
il veicolo temporale e la sua ombra erano scomparsi.
Quella sparizione segnava per sempre la
fine dell'Eternità. E il principio dell'Infinito."
   Isaac Asimov  -  il Maestro