Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Domanda funzioni pascal

16 views
Skip to first unread message

Alessandro Pasqualini

unread,
Mar 11, 2011, 8:40:07 AM3/11/11
to
Salve a tutti!
Volevo porvi un mio assillante dubbio sulle funzioni in pascal: quando
all'interno di una di esse devo restituire il valore di ritorno devo
riferirmi solo al nome della funzione stessa o posso anche usare la
parola result??
Vi faccio due esempi per capire meglio xD


Devo obbligatoriamente usare questo tipo di sintassi (ho lasciato
stare i parametri perché in questo momento non interessano xD):

function Nome_Funzione: Tipo_Restituito;
begin
...
Nome_Funzione:=Valore_Da_Restituire;
end;


o posso fare anche così:

function Nome_Funzione: Tipo_Restituito;
begin
...
Result:=Valore_Da_Restituire;
end;

La seconda sintassi viene riconosciuta perfettamente da DevPascal
invece TurboPascal si impianta dicendo che non riconosce
l'identificatore. Come è possibile sta cosa??? Quale dei due
compilatori ha "ragione"???

Grazie mille a chiunque possa risolvere il mio dilemma xD
Spero di essermi piegato bene xD Grazie xD

MBulu

unread,
Mar 11, 2011, 12:55:32 PM3/11/11
to
Alessandro Pasqualini ha usato la sua tastiera per scrivere :

>
> La seconda sintassi viene riconosciuta perfettamente da DevPascal


Ciao, purtroppo non ti so rispondere, ma voglio segnalarti, se già non
lo conosci, http://www.freepascal.org/ è molto più aggiornato del
DevPascal.


Ciao, Mario


Alessandro Pasqualini

unread,
Mar 11, 2011, 1:16:43 PM3/11/11
to
Grazie Mario xD ma a me non interessa cambiare compilatore.. la mia
domanda è il motivo per il turbo pascal si impianta mentre il Dev
pascal riconosce la sintassi.. Ho fatto alcune ricerche ma non sono
riuscito a capire se usare il result è una cosa lecita o no nel
linguaggio pascal.. Grazie comunque xD

MBulu

unread,
Mar 12, 2011, 5:51:31 AM3/12/11
to
Scriveva Alessandro Pasqualini venerdì, 11/03/2011:

Io il Turbo Pascal lo usavo quasi vent'anni fa' a scuola e quindi non
ricordo ...
Da 4 o 5 anni uso Lazarus, e quindi indirettemente il Free Pascal, e
adesso uso solo il Result. La cosa comoda è che se cambi nome alla
funzione, hai una cosa in meno di cui ricordarti, altrimenti dovresti
cambiare anche "l'interno" della funzione.
Anche nei sorgenti di FreePascal e Lazarus, scritti da gente che ne sa
moooolto più di me, viene usato praticamente solo il Result.

Ciao, Mario


Alessandro Pasqualini

unread,
Mar 12, 2011, 8:52:47 AM3/12/11
to
Scusa Mario devo aver sbagliato a premere il bottone.. comunque ho
guardato i sorgenti presenti come esempio in dev Pascal e viene usato
il result xD Mi sento realizzato: se lo usano loro vorrà dire che è
lecito xD Grazie ancora Mario:)

Il Razziatore

unread,
Mar 12, 2011, 10:48:13 AM3/12/11
to
Il 11/03/2011 14.40, Alessandro Pasqualini ha scritto:
> La seconda sintassi viene riconosciuta perfettamente da DevPascal
> invece TurboPascal si impianta dicendo che non riconosce
> l'identificatore. Come � possibile sta cosa??? Quale dei due

> compilatori ha "ragione"???
>
> Grazie mille a chiunque possa risolvere il mio dilemma xD
> Spero di essermi piegato bene xD Grazie xD

La domanda � un po' complicata perch� dipende tutto dal punto di vista.

Il pascal sebene standardizato ( ISO 7185 versione iniziale, ISO 10206
versione "estesa" contente ad esempio gli oggetti ) ha, come tutti i
linguaggi del resto, molte varianti o dialetti. Questi dialetti vengono
introdotti dai compilatori che a mano mano che cambiano versione
arrichiscono il loro dialetto.

Questo vale per tutti i linguaggi. Il pascal � un linguaggio
particolare, per molti anni sebene ci fosse uno standard c'era un
dialetto che era standard di facto. Il dialetto introdotto da borland
nei sui compilatori prima con la seria TurboPascal e poi con Delphi.

Quindi la vera domanda � "a quale standard ti vuoi riferire"? Se
prendiamo il pascal primordiale ( ISO 7185 ) sicuramente non aveva il
"result" ( molto comodo devo dire ).

La variabile implicita result viene introdotta, da quel che so, dal
Delphi ma non so in che versione.

Spero di essere stato utile.

Alessandro Pasqualini

unread,
Mar 12, 2011, 3:59:48 PM3/12/11
to
La mia domanda è sorta in quanto a scuola stiamo imparando questo
linguaggio, anche se personalmente lo conosco da alcuni anni, e
durante un compito in classe ho usato la sintassi con il result e
avendo usato il Dev-Pascal non ho avuto problemi nella compilazione.
Quando la prof ha consegnato il compito corretto ha detto che non
conoscevo la sintassi in quanto, secondo lei, non avevo dichiarato la
variabile result, e mi ha mostrato che con il Turbo Pascal
effettivamente si impallava dicendo che non riconosceva
l'identificatore, così ho cercato di spiegare alla prof l'uso del
result al posto del nome della funzione, ma mi ha mostrato un libro
sulla programmazione pascal (mooolto vecchio) dove non si accennava
all'uso del result. La mia domanda è: Perchè il Turbo Pascal si
impianta mentre il Dev-Pascal accetta la sintassi?? Sono andato a
cercare negli iso del pascal e non si parla del result, nemmeno
nell'object Pascal. Delphi non deriva dall'object Pascal?? Perchè
l'introduzione del result?? e poi è così sbagliato averlo usato???

chiedo scusa per il mare di domanda ma sta cosa mi ha davvero sorpreso
xD
Grazie comunque xD

Il Razziatore

unread,
Mar 12, 2011, 4:17:23 PM3/12/11
to
Il 12/03/2011 21.59, Alessandro Pasqualini ha scritto:

> La mia domanda è: Perchè il Turbo Pascal si
> impianta mentre il Dev-Pascal accetta la sintassi??

Perché come ti ho detto fanno riferimento a due dialetti diversi.

Il DevPascal fa riferimento al dialetto introdotto con Delphi mentre il
turbo pascal fa riferimento al suo dialetto. Tra parentesi c'è
differenza tra le versioni. Un codice scritto per Turbo Pascal 7 ( il
più diffuso dei "Turbo Pascal" è poco probabile che funzioni con
versioni precedenti.

Tanto per fare un esempio prendiamo un oggetto:
- nel Turbo Pascal 7 esistono entrambe le parole chiavi public e private
- nel Turbo Pascal 6 esiste solo la parola chiave private
- nel turbo pascal 5 non esistono ( tutto è pubblico e tanti saluti )


> Sono andato a
> cercare negli iso del pascal e non si parla del result, nemmeno
> nell'object Pascal.

Mi soprendere del contrario.

> Delphi non deriva dall'object Pascal??

Delphi è l'object pascal. Delphi è la prosecuzione del Turbo Pascal che
dalla versione 5 è "orientabile" ad ogetti. Tanto e vero che almeno fino
a Delphi 6 la versione del compilatore non era 6 ma 13 perché si metteva
idealmente dopo il Borland Turbo Pascal with object 7 ( nome completo
del Turbo Pascal ).

> Perchè
> l'introduzione del result?? e poi è così sbagliato averlo usato???

Perché è comodo. Il compilatore fa quello che il 90% delle volte devi
fare tu.

No non è "sbagliato" è del tutto lecito se stai usando un compilatore
che capisce quel dialetto. Diciamo che teoricamente sarebbe meglio
evitarlo perché come hai visto non tutti i compilatori lo capiscono.

Io personalmente qunado programmo in BP uso lo stesso result
dichiarnadolo a mano ;)

{ Pero' delphi generà errore se lo si fa perché a definire la varibile
ci pensa lui per noi }

> chiedo scusa per il mare di domanda ma sta cosa mi ha davvero sorpreso

Scusami una domanda: ma voi a scuola con cosa programmate? Turbo Pascal
o Dev-Pascal?

Alessandro Pasqualini

unread,
Mar 12, 2011, 5:12:50 PM3/12/11
to
Il problema è proprio questo: la prof inizialmente ci ha detto di
usare il Turbo Pascal ma nei computer della scuola era presente anche
Dev-Pascal. Poi un po' per insistenza mia, che preferisco il Dev-
Pascal, e un po' perchè i miei compagni hanno scoperto che Dev-Pascal
è fatto in grafica, si è convinta a lasciarci usare anche questo.

Il Razziatore

unread,
Mar 12, 2011, 6:05:18 PM3/12/11
to
Il 12/03/2011 23.12, Alessandro Pasqualini ha scritto:
> Il problema � proprio questo: la prof inizialmente ci ha detto di

> usare il Turbo Pascal ma nei computer della scuola era presente anche
> Dev-Pascal. Poi un po' per insistenza mia, che preferisco il Dev-
> Pascal, e un po' perch� i miei compagni hanno scoperto che Dev-Pascal
> � fatto in grafica, si � convinta a lasciarci usare anche questo.

Capisco. Beh Dev-Pascal sicuramente � comodo l'ho usato anch'io per un
piccolo lasso di tempo.

Comunque ricordati che Dev-Pascal � solo un IDE e che il cuore �, il
compilatore, FreePascal.

Comunque se la tua professoressa � abbituata al dialetto BP usa quello e
vivi felice. Al limite comprati un buon manuale. Con il vecchio BP si
puossono fare un sacco di cose interessanti ( considera che � l'unico
compilatore pascal che ho installato ora, anche se per motivi nostalgici
sopratutto ).

Alessandro Pasqualini

unread,
Mar 12, 2011, 6:14:58 PM3/12/11
to
Si hai ragione.. Però è molto più comodo il Dev-Pascal. Però mi sono
già riproposto di scrivere il sorgente con il Dev-Pascal e prima di
consegnare la prossima volta controllo che funzioni anche sul Turbo
Pascal. Il problema è che la mia prof è convinta che non si possa
usare il result solo perchè non va sul Turbo... Vabbè proverò a
spiegarle quello che gentilmente mi hai illustrato tu. Grazie Mille xD
Ti chiedo un'altra cosa: uno standard iso (tipo quello del pascal) è
il dialetto più usato e conosciuto?? Grazie ancora per il tuo aiuto xD

Alessandro Pasqualini

unread,
Mar 12, 2011, 6:29:57 PM3/12/11
to
> Io personalmente qunado programmo in BP uso lo stesso result
> dichiarnadolo a mano ;)

Ho provato ma non restituisce il valore della funzione, a dire la
verità nelle mie prove non è stato restituito niente. Puoi gentilmente
spiegarmi come fai a usare il result anche sul Turbo Pascal??

Grazie Mille xD

Il Razziatore

unread,
Mar 13, 2011, 7:55:43 PM3/13/11
to Alessandro Pasqualini


function miafunzione : tiporitorno;
var result : tiporitorno;
begin
....
result := risultato;
....
miafunzione := result;
end;

Il Razziatore

unread,
Mar 13, 2011, 8:05:24 PM3/13/11
to Alessandro Pasqualini
Il 13/03/2011 0.14, Alessandro Pasqualini ha scritto:
> Ti chiedo un'altra cosa: uno standard iso (tipo quello del pascal) è
> il dialetto più usato e conosciuto?? Grazie ancora per il tuo aiuto xD

Se ho capito la domanda, e non ne sono sicuro, a differenza del C dove
ANSI C è ritenuto molto importante ( anche se molti si ci alontanano )
per il pascal gli standard non li conosce quasi nessuno e tutti, o
quasi, usano il dialetto Borland.

In particolare il Turbo Pascal 7 è stato uno standard incontrastato per
diversi anni ( alemeno tutti gli anni 90 ).

C'è da considerare che almeno io ho iniziato ad usare intesivamente
Delphi dalla versione 5 ( 1999 ) ma non ho mai considerato mischiato le
cose. Conoscevo le differenze dei due dialetti e li tenevo separati. (
che in effetti sembravano quasi due linguaggi diversi, basti pensare che
delphi ha la parola chiave class mentre il bp usa il vecchio object )

Quando qualcuno mi dice "Sai programmare in pascal" penso ancora oggi al
dialetto di Borland/Turbo Pascal 7 e gli rispondo con orgoglio
affermativamente. Questo non toglie che se qualcuno mi dice "Sai
programmare in delphi" io non gli dica di sì ;)

Alessandro Pasqualini

unread,
Mar 14, 2011, 9:41:35 AM3/14/11
to
Se ho capito bene il delphi non è altro che l'evoluzione del vecchio
turbo pascal, quindi credo sia logico che il dialetto sia simile ma
non uguale, e che il delphi abbia sostanzialmente allargato il
dialetto del Turbo Pascal. Ora la Bloodshed quando ha "inventato" il
Dev-Pascal ha ritenuto più vantaggioso basarsi sul dialetto del delphi
perché più nuovo. Quindi i sorgenti scritti con Turbo Pascal vengono
compilati a pieno dal Dev-Pascal ma non è possibile dire lo stesso
perchè il secondo compilatore utilizza un dialetto più nuovo rispetto
al primo. Correggimi se ho sbagliato qualche cosa nel mio ragionamento
xD

Il Razziatore

unread,
Mar 14, 2011, 2:57:53 PM3/14/11
to

Tutto giusto tranne che Dev-Pascal è solo un IDE ( interfaccia ) che si
"poggia" su FreePascal. Tra parentesi da quel che so il FreePascal ha un
suo dialetto "legermente" diverso.

Alessandro Pasqualini

unread,
Mar 14, 2011, 4:09:58 PM3/14/11
to
Grazie mille xD
Mi sei stato davvero utile xD adesso ho le conoscenze per tirami su il
voto della verifica xD
Grazie Grazie xD

Alessandro Pasqualini

unread,
Mar 14, 2011, 4:14:09 PM3/14/11
to
Mi è venuta in mente un altra domanda xD. Il pascal che viene
insegnato nei libri è quello dello standard iso o è un dialetto del
linguaggio?? Grazie ancora xD

Alessandro Pasqualini

unread,
Mar 15, 2011, 7:58:46 AM3/15/11
to
Ciaoooo xD Guardando i Vecchi topic ho notato che parlavi di una
dicitura del tipo:

program mio_programma(in,out);
...

io non ho mai usato questa dicitura, personalmente ho sempre usato:

program mio_programma;
...

Volevo chiederti se per caso è stata la Borland con il suo dialetto a
cambiare la prima sintassi nella seconda o come mai si usa la seconda
adesso??? grazie mille xD

Il Razziatore

unread,
Mar 15, 2011, 2:52:40 PM3/15/11
to
Il 14/03/2011 21.14, Alessandro Pasqualini ha scritto:
> Mi � venuta in mente un altra domanda xD. Il pascal che viene
> insegnato nei libri � quello dello standard iso o � un dialetto del
> linguaggio?? Grazie ancora xD

Diprende dal libro. Il mio libro di riferimento insegna il Turbo Pascal
7 con tutti i tool e contro tool.

Il Razziatore

unread,
Mar 15, 2011, 2:56:35 PM3/15/11
to

La prima ( con in e out ) è la diciura "standard" il borland l'ha
eliminata ( perché fondamentalmente non serve a un beep ).

Nel dialetto borland è ammissibile una qualunque lista di parametri che so

program mio_programma( a, b, c, d, e, f );

intanto vengono alegramente ignorati perché, come viene detto dalla
guida "it's purely informative and has no meaning to the program itself"

Alessandro Pasqualini

unread,
Mar 15, 2011, 3:00:56 PM3/15/11
to
On 15 Mar, 19:56, Il Razziatore <ilrazziat...@gmail.com> wrote:

> La prima ( con in e out ) è la diciura "standard" il borland l'ha
> eliminata ( perché fondamentalmente non serve a un beep ).
>
> Nel dialetto borland è ammissibile una qualunque lista di parametri che so
>
> program mio_programma( a, b, c, d, e, f );
>
> intanto vengono alegramente ignorati perché, come viene detto dalla
> guida "it's purely informative and has no meaning to the program itself"

Ma in teoria a che servirebbe?? Cosa indicano i parametri dentro le
parentesi??? Grazie xD

Il Razziatore

unread,
Mar 16, 2011, 2:19:10 PM3/16/11
to


Dovrebbero essere i parametri di ingresso ( in ) e di uscita ( out ) del
programma. In altre parole la tastiera ( in ) e lo schermo ( out ).

Di preciso non so come si dovrebbero usare.

Alessandro Pasqualini

unread,
Mar 16, 2011, 5:56:26 PM3/16/11
to
On 16 Mar, 19:19, Il Razziatore <ilrazziat...@gmail.com> wrote:

> Dovrebbero essere i parametri di ingresso ( in ) e di uscita ( out ) del
> programma. In altre parole la tastiera ( in ) e lo schermo ( out ).
>
> Di preciso non so come si dovrebbero usare.

Grazie mille mi sei stato di grandissimo aiuto:)

0 new messages