Pascal...[non Mattia come dice Tony] ; )

Messaggioda vecchio » 16/04/2004, 23:03

riposto qui un intervento che ho fatto forse fuori luogo in un altro "settore"

<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>citazione:<hr height=1 noshade id=quote>hei Marcello!
ho finito di risolvere il problema..ed è esatto...(mi pare..al 99%)
per caso ti intendi anche di Turbo Pascal?
avevo infatti fatto, prima di affrontare il problema + rigorosamente,
un programma in Pascal che mi sommasse i vari segmentini della curva.
ora tutto era legato ad un K di approssimazione, per cui ovviamente + è piccolo il K, migliore dovrebbe essere il risultato.
ora fino a k=0,00001 il risultato ottenuto è decisamente soddisfacente (almeno in base al mio risultato "rigoroso") poi però mi sballa di brutto!!
a parte il fatto che dopo, per calcolarmi il valore, ci mette qualcosa come 1 ora e mezza!!! ma soprattutto il risultato sballa completamente!! è possibile che dopo una certa approssimazione il Pascal vada in pallone??

questo quesito è ovviamente rivolto a chiunque sappia qualcosa in merito al Pascal..

<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>

così dici che va bene Tony?
non scomodiamo il grande Pirandello...feremmo solo..."un buco nel cielo di carta..." ; )


saluti
il vecchio

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 353 di 1036
Iscritto il: 17/07/2003, 15:35

Messaggioda tony » 17/04/2004, 02:53

<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>*quote:<hr height=1 noshade id=quote>
..."un buco nel cielo di carta..."
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>
ha ragione, vecchio signor Meis! che piacere parlarLe di altre marionette ...

vengo al punto:
in molti abbiamo "quasi toccato la perfezione" di risultati in semplici "loop" di programma, e poi (il meglio è nemico del bene, ricordava cannigo) siamo piombati nella più incredibile spazzatura.

c'è sempre dietro qualche nostro tentativo di usare uno strumento al di là dei suoi limiti.
ad es. tempo fa in questo forum, qualcuno, cercando un limite, fece vedere che un'innocentissima funzione, diagrammata per valori vicinissimi allo zero, invece di essere praticamente una retta orizzontale (come madre natura e ogni elementare ragionamento dettavano), oscillava in modo inquietante, aumentando parossisticamente d'ampiezza man mano che si avvicinava allo zero [e il bello è che, invece di dar retta al proprio ragionamento, hanno ipotizzato che potessero esitere dei "falsi dottori"];
non mi ricordo gli estremi, ma son sicuro che, commentando la loro "fede" nell'abuso dei limiti dello strumento [perchè qui stava la ragione di quel diagramma illusorio (un'altra fata morgana, toccano tutte a te, vecchio?)], avevo riassunto con un "non cavi sangue da una rapa"; se fai una search per "rapa" a mio nome, forse ritrovi il gustoso topic (trascura le eventuali occorrenze di "rapa" nel mio curriculum).

torno, ed è un caso, all'argomento, con un interrogatorio:
[1] quante volte figliolo, quante volte, hai ripetuto il loop?
[2] com'era definita la variabile del loop (real, etc.)?
[3] (consegue dalle prec.) quant'era l'incremento?
[4] com'eran definite le variabili dell'espressione calcolata (real, et.)?
[5] qual'era il criterio di uscita dal loop?
io mi son trovato a oscillare migliaia di volte intorno a una soluz. prima cadere entro l'epsilon che avevo stabilito per uscire
[6] aggiungi un contatore del numero di ripetiz. e vedi come varia da quando il loop "grossolano" funzionava a quando quello "raffinato" ci mette una vita.
[7] a latere... se cerchi di integrare in coord cartes. una funz. tipo semicerchio, vedi che, in prossimità dei due punti estremi è praticamente verticale, e questo ti comporta una forte imprecisione

come vedi, sto orientando questa prima analisi alla precisione delle variabili da te usate; non è detto che basti, ma è un inizio.
(pover'a ttè quando sbrodolerò il prossimo intervento!)

poi, forse, possiamo usare un semplicissimo esempio (area del semicerchio centrato nell'origine) postando qui le poche rige dei sorgenti, e ferocemente commentandole.

forse sta prendendo una piega divertente
tony

P.S.
ma tu, vecchio, il signor Meis quando l'hai conosciuto?


*Edited by - tony on 17/04/2004 02:56:19
tony
Average Member
Average Member
 
Messaggio: 311 di 873
Iscritto il: 11/11/2005, 00:47
Località: milano

Messaggioda vecchio » 17/04/2004, 15:16

dunque Tony...non te la prendere...ma non è che io abbia capito gran che del tuo intervento...che diavolo è 'sto "loop"??? per quanto riguarda le variabili sono tutte in real...questa è l'unica cosa che ho capito...

per quanto riguarda il mio incontro col Signor Meis...purtroppo è avvenuto dopo la "morte" prematura del compianto Mattia Pascal...notizia pervenutami solo qualche mese fa...quando ho intrapreso lo studio di Pirandello (sono in 5° scientifico...)<img src=icon_smile_wink.gif border=0 align=middle>

ciao
grazie e scusa ancora se non sono all'altezza delle tue spiegazioni..

P.S.
a proposito...ma tu stai su un altro fuso orario o davvero consulti il forum alle 3 di notte??????

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 357 di 1036
Iscritto il: 17/07/2003, 15:35

Messaggioda Spazio Sghembo » 17/04/2004, 17:04

int a = 1
repeat
a=a+1
until a<1

La sintassi dovrebbe essere capibile... Questo è un loop. Ovvero quando un calcolo comincia a richiamare parti di se stesso all'infinito...

Meglio, diciamo che se attivi la funzione di ripetizione nel tuo lettore cd hai messo il cd in loop...
Spazio Sghembo
New Member
New Member
 
Messaggio: 70 di 77
Iscritto il: 27/03/2004, 02:01
Località: Italy

Messaggioda Highrender » 17/04/2004, 18:35

Come è stato detto, un loop (ciclo) è l'esecuzione iterativa di una o più istruzioni che si ripetono in un programma.

Vecchio, se vuoi avere maggiori informazioni, c'è un testo fondamentale sugli algoritmi e le strutture dati, realizzato dal padre del linguaggio Pascal:

"Algorithms + Data Structures = Programs"
Niklaus Wirth
Prentice-Hall 1975
ISBN 0-13-022418-9
Highrender
Junior Member
Junior Member
 
Messaggio: 185 di 395
Iscritto il: 22/10/2003, 21:52
Località: Italy

Messaggioda tony » 18/04/2004, 02:43

scusa, vecchio, per il termine loop in inglese per descrivere una cosa che tu fai in italiano da chissà quanto tempo.
(in Basic è addirittura una parola riservata del linguaggio, mentre non c'è in Pascal); e magari avete addirittura gli help in italiano.
non è detto che ci si possa capire d'acchito; pian piano arriveremo al nodo.
<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>*quote:<hr height=1 noshade id=quote>
...per quanto riguarda le variabili sono tutte in real...[vecchio]
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>
il tuo increm. "cattivo" è 10^-6, no?
non è piccolissimo, ma comunque riprova dichiarandole "double", e vedi se le cose migliorano e il punto in cui van male si sposta;
se sì, riprova con "extended".
ma prova anche a descriverci quanto chiedevo negli altri punti.
buon lavoro.

tony

*Edited by - tony on 18/04/2004 02:49:02
tony
Average Member
Average Member
 
Messaggio: 313 di 873
Iscritto il: 11/11/2005, 00:47
Località: milano

Messaggioda vecchio » 18/04/2004, 13:43

mm..mi sento sempre + ignorante...cos'è l'incremento cattivo??? gli help sono in inglese...e infatti non mi sono per niente d'aiuto<img src=icon_smile_wink.gif border=0 align=middle>
ho provato a dichiarare le variabili con double o extended...ma non mi compila il programma..credo a causa del fatto che forse non posso operare con seno e coseno con quel tipo di variabili...
cmq...per togliere ogni dubbio..

questo è il listato del programma (ovviamente ho modificato la formula "risolutrice" per creare contestazioni...cmq + o meno le somiglia...)

<pre id=code><font face=courier size=2 id=code>
program curva_strana;
uses crt;
const
k=0.001;
R=0.5;
var
S,a,a_0,L_0:real;

function tan(x:real):real;
begin
tan:=sin(x)/cos(x);
end;

begin
clrscr;
s:=0;
a:=0;
repeat
a_0:=a+k;
L_0:=*R*sqrt(sqr(tan(a_0))+sqr(tan(a))+*tan(a_0)*tan(a)*sin(2*k));
S:=L_0+S;
a:=a_0;
until a+k>pi/4;
writeln(S:10:6);
</font id=code></pre id=code>

se invece ritenete che io possa postare il "vero" testo del programma fatemi sapere...
spero con questo che tu Tony riesca a dare risposta alle tue domande...visto che io non so risponderti...sorry...

aspetto vostre risposte

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 361 di 1036
Iscritto il: 17/07/2003, 15:35

Messaggioda tony » 18/04/2004, 18:34

<BLOCKQUOTE id=quote><font size=1 face="Verdana, Arial, Helvetica" id=quote>*quote:<hr height=1 noshade id=quote>
...cos'è l'incremento cattivo??? [vecchio]
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Verdana, Arial, Helvetica" size=2 id=quote>
intendevo quello che tu lamenti che fa sballare le tue prove.

grazie del listato. lo scarico, ci lavoro sopra, e, in un fuso più opportuno <img src=icon_smile_big.gif border=0 align=middle> vedo di darti qualche risultato.

proporrei, per la limpidezza, di occuparci del seguente problema:
" calcolare l'arco di una semicirconf. di raggio 2 (centro nell'origine, quadranti I e II)"
è sufficientemente asettico, direi.
tra l'altro, provaci anche tu, per vedere se ti da gli stessi guai.

altra domanda, "che pascal usi?" (io ho versioni antidiluviane)

tony
tony
Average Member
Average Member
 
Messaggio: 316 di 873
Iscritto il: 11/11/2005, 00:47
Località: milano

Messaggioda vecchio » 18/04/2004, 20:11

ah io no!! mi dispiace ma sto al passo con la tecnologia avanzata della mia scuola...Turbo Pascal 5.5...per scaricarlo sono andato sul "museo storico" della Borland...fai due conti...<img src=icon_smile_wink.gif border=0 align=middle>
se vuoi provare il programma "vero" dimmelo che te lo mando via mail...tanto tu hai già risolto il problema no?

quindi mi stai dicendo di fare un programma per calcolare la circonferenza?..ok proverò...

ora vado a cena
...cucino io...

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 363 di 1036
Iscritto il: 17/07/2003, 15:35

Messaggioda fireball » 19/04/2004, 13:48

Potreste farmi un programma in Pascal che calcoli la somma di due matrici?



Modificato da - fireball il 19/04/2004 13:50:19
fireball
Cannot live without
Cannot live without
 
Messaggio: 898 di 6661
Iscritto il: 12/03/2003, 21:35

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Super Squirrel e 6 ospiti