Newsgroup: it.comp.lang.pascal
Titolo: Considerazioni sul PasMath

Dunque, dopo una lunga assenza, trovo un sacco di nuove versioni del
PasMath. :-)
Mi siano ora permesse alcune considerazioni su tutto il nuovo codice
che è stato scritto da Carmelo, che ha 'adottato' il programma e,
probabilmente, ha lavorato meglio di quanto non sarei riuscito a fare
io.
Ho ricevuto ben cinque mail (fatto non trascurabile, visto anche il
periodo) riguardo al sorgente che ho spedito, un risultato che ha
decisamente superato le mie aspettative.
Quindi, mi sono dato alla lettura di tutte le nuove versioni del
programma, per farmi un'idea dei cambiamenti apportati.
L'interfaccia è simpatica, ma ritengo che sia preferibile usare i
colori standard, bianco e nero. Anche se devo ammettere che quei
colori più scuri della versione 0.22 non sono male.
Tanto, i colori serviranno quando in seguito scriveremo le routine
grafiche (è solo una mezza idea, da definire nel seguito, quando
PasMath sarà arrivato alla versione 0.98.9).
Una cosa che mi ha turbato sono state le direttive {$N+,E+}, e l'uso
del tipo extended.
Anche se per l'aritmetica floating point è una manna dal cielo, in
questo caso non era assolutamente necessario farvi ricorso.
Le ragioni sono molteplici:
il software è 'libero', quindi deve essere compilabile (e quindi
compatibile) con quanti più dialetti Pascal possibili, per i primi
tempi, in modo che quante più persone possibile possano provarlo;
inoltre, legarlo ad un compilatore (il Turbo Pascal 7.0) commerciale e
non più supportato è 'il tirarsi la zappa sui piedi', un comportamento
analogo a quello dei nostri 'colleghi' che scrivono programmi in
Fortran 77.
Gli errori riportati da Torbo sono dovuti proprio a questa scelta. La
soluzione è semplice: chi non usa il TP deve cancellare le direttive
{$N+,E+} e cambiare tutte le dichiarazioni di variabili, funzioni e
parametri di tipo 'Extended' con altre di tipo 'Real'.
Intendiamoci, il TP è meraviglioso, ma pone vincoli nel sistema
operativo, ovvero: DOS/Win16...
Per questo la mia intenzione sarebbe di continuare a scrivere in
Pascal standard per poi passare al Free Pascal.
Nei prossimi giorni darò un'occhiata più approfondita ai sorgenti e
vedrò se qualcosa scritto da me è ancora utilizzabile.
Inoltre, ho alcune idee in testa (quella che  brilla su tutte consiste
nell'implementare l'output su file in formato testo e MathML), ma
ancora buio completo sul modo di gestire i monomi.
C'è solo un'altra cosa, per adesso. Per curiosità, ho dato un'occhiata
al codice di altri software distribuiti con la licenza GPL. Quindi, mi
rivolgo a Carmelo, per favore, nella prossima versione (che
sicuramente hai già quasi finito) cambia il commento iniziale con
questo:
{  This source is to be distributed under the terms of the GPL -
   Gnu Public License.
   Copyright (C) 2001 Michele Povigna, Carmelo Spiccia.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
You can find a copy of this license at
http://www.gnu.org/licenses/gpl.txt
}
E' ispirato ai commenti negli altri programmi, e francamente, mi piace
di più scritto così 'verbosamente'.
Ora guardo come si possono correggere quei bug. :-)
Ciao
PV

Nn sono un esperto di programmazione, ma per quanto possibile volevo darvi
una mano per creare il vostro pas-Math...ho scritto due programmi, uno per
la scomposizione in fattori primi e uno per la trasformazione da numero
dacimale a binario e viceversa. Se vi servono, ditemelo e vi farò avere il
codice... Ciao Ciao
Torbo
PS: Il programma ero riuscito cmq a farlo andare, ho semplicemente cambiato
compilatore...


Non ho capito cosa intendi. Comunque, il Dev-Pascal 1.9 compila
perfettamente il codice senza cambiare nulla (la cosa mi ha stupito).
Basta deselezionare le opzioni 'Switch some Delphi extensions on' e
'Try to be Delphi compatible'.
Ovviamente 'Try to be TP/BP 7.0 compatible' deve essere attiva.
Ciao
PV

 quei bug. :-)
Good. Quello di dare priorita' da sinistra a
destra e' facile da risolvere. Ben piu'
problematico e' il bug delle parentesi...
non sara' semplice risolverlo in maniera
"pulita".
Almeno cosi' ti costringi a districarti nel
nuovo sorgente. :-)
Ciao, Carmelo.

mio contributo al programma.
Liceo scientifico?
Ciao
PV

 Liceo scientifico?
Istituto Tecnico Industriale (spec. Informatica).
Ciao, Carmelo.

Se volete un consiglio, nn risolvete le equazioni, ma fate una funzione per
la loro risoluzione scomponendo in fattori primi e facendo l'mcm. Così  nn
ci sarà la perdita di precisione dovuta all'arrotondamento.
CIAO CIAO