Newsgroup: it.comp.lang.pascal
Titolo: #FAQ ver 0.1#

P.S.: Sembrerà strano ma non ho avuto un gran che di tempo durante le feste
per aggiornarle, ma lo farò presto.

FAQ del newsgroup it.comp.lang.pascal
Versione 0.1 (bozza)
_______________________________
Redazione a cura di
Gianluca Maniscalco
(
gian...@hotmail.com
)
_______________________________
[SOMMARIO]
0  -  Introduzione
1  -  Manifesto
2  -  Regole
3  -  Domande
4  -  Links
5  -  Bibliografia
6  -  Contributi
7  -  History
8  -  Legalese
[0  -  INTRODUZIONE]
---------------------------------
Questo documento è stato scritto attingendo dalle domande e
dalle risposte postate sul newsgroup IT.COMP.LANG.PASCAL;
esso può essere ridistribuito in qualunque modo in quanto
soggetto alla GPL (Gnu Public License, vedi par. 8).
Lo scopo delle FAQ (Frequently Asked Questions) è quello di
aiutare chi si avvicina per la prima volta alla programmazione
in linguaggio Pascal , e comunque di dare risposta alle domande
più comuni.
[1  -  MANIFESTO]
----------------------------------
(
http://beatles.cselt.it/news-it/manif/it.comp.lang.pascal.txt
)
"Si potra' parlare del linguaggio di programmazione Pascal (in tutte le
sue implementazioni e/o dialetti) e delle problematiche relative alla
programmazione in questo ambiente.
ll gruppo non si intende ne' moderato, ne' in gateway con mailing
list."
[2  -  REGOLE]
----------------------------------
(Eventuali suffisi al messaggio tipo [OT]/[?]/[REPOST]/[INFO] etc)
[3  -  DOMANDE]
----------------------------------
[D]   <Dove posso scaricare la patch per il Turbo Pascal?>
[R]
Innanzitutto: a cosa serve la patch? La sua funzione è evitare che
nell'esecuzione
di un programma compilato con il Turbo Pascal si abbia il fatidico errore
"Runtime
error 200 at xxxx:xxxx". Questo avviene con i processi più veloci di 200 Mhz
perchè
durante l'inizializzazione della unit Crt avviene una chiamata ad un
registro della
CPU che genera una "Division by zero".
I siti mettono a disposizione la patch sono innumerevoli, basta cercare con
un motore
di ricerca qualunque. Esistono due tipi di patch: 1) residente in memoria
per i programmi
già compilati e di cui non possiedi il sorgente  2) sostituisce la unit Crt
con un'altra
senza il problema riportato sopra.
Alcuni link:
http://digilander.iol.it/darkbytes
  (entrambi i tipi di patch)
http://helios.unive.it/~franz/bp7patch.html
  (patch per la unit Crt)
http://
[D]   <Come si installa la patch per il Turbo
Pascal?>__________________________
[R]
Se è residente in memoria basta eseguirla prima del programma che non
funziona;
altrimenti di solito è necessario copiare tutti i files nella subdirectory
..\..\BIN del TP
sovrascrivendo i file originali (di solito sono Turbo.tpl e Tpp.tpl).
[D]   <Dove posso scaricare un compilatore per il
Pascal?>_____________________
[R]
Esistono numerosi compilatori che sono completamente freeware:
   - FreePascal (
www.freepascal.org
):  il più famoso nel mondo OpenSource.
     E' supportato da numerose piattaforme e S.O., funziona a linea di
comando ma è
     esistono delle GUI (Graphic User Interface, ovvero una interfaccia
grafica)
   - Borland Turbo Pascal (
www.borland.com
): il più diffuso nel mondo
scolastico.
[D]   <Che differenza c'è tra Pascal, Turbo Pascal, FreePascal,
etc...?>______________
[R]
Il Pascal è il linguaggio definito dallo standard ANSI/ISO che ne definisce
la sintassi,
i costrutti, le librerie standard. Del linguaggio esistono quindi diverse
implementazioni
per le varie piattaforme (DOS, WIN, Linux, Mac...), alcune freeware
(FreePascal), altre
commerciali.
[D]   <Parametri per valore o per indirizzo in una funzione o una
procedura>________
[R]
Scrivendo una procedura, o una funzione, è possibile specificare se essa
deve agire
su di una copia della variabile passatagli per argomento, oppure cambiare la
variabile
stessa, passandogli l'indirizzo di memoria che la contiene.
ESEMPIO 1:
procedure PER_INDIRIZZO (var x : integer);
    x := x + 2;
end;
Un'eventuale chiamata nel programma del tipo
PER_INDIRIZZO(mia_variabile)
causa un incremento di mia_variabile di 2 unità.
ESEMPIO 2:
procedure PER_VALORE(x : integer);
    x := x + 2;
    .....
end;
Invece questa procedura
PER_VALORE(mia_variabile)
utilizzerà solo una *copia* del valore della variabile, e pertanto ogni
aggiornamento
di essa nella procedura non avrà effetto su mia_variabile.
[4  -  LINKS]
----------------------------------
  -  
http://wwwinprise.it/pascal/
  (il sito ufficiale del Borland Turbo
Pascal)
  -  
http://www.freepascal.org
  (Tutorials e codice in italiano)
  -  
http://www.programmazione.it
  -  
http://www.redangel.it/Pascal.asp
  -  
http://www.gpi.infomedia.it
  (Game Programming Italia)
  -  
http://www.cli.di.unipi.it/Beatrice/guide/pascal.html
  (università di
Pisa)
  -  
http://www.desimoni.org/CLASSI/TPASCAL/unidad9p.htm
     (è praticamente l'help in linea tradotto in italiano)
  -  
http://www.pegacity.it/informatica/assembly/asm_pas.htm
  (Assembler &
Pascal)
  -  
http://digilander.iol.it/darkbytes/
  (le patch)
  -  
http://members.xoom.it/kosby/
   (un tutorial)
  -  
http://www.pascal-central.com/
     (Forse il più ricco sito in lingua inglese relativo al Pascal per ogni
sua implementazione
       con tutorials, mailing-lists, codice sorgente, units varie, links,
.... )
  -  
http://www.programmersheaven.com
  (in lingua inglese, una gran quantità
di codice)
  -  
http://www.cs.vu.nl/~jprins/tp.php
  (molto ben organizzato nei
contenuti)
[5  -  BIBLIOGRAFIA]
----------------------------------
 -  BISHOP, "Pascal, corso di programmazione.", Addison Wesley, 1997.
 -  LE BEUX, "Pascal e Turbo Pascal.", Jackson Libri
 -  GORI-NESI-PASCA, "Programmazione in C e Pascal.", McGraw Hill 1996.
 -  CALVANESE-LIBERATORE-MASSACCI-ROSATI, "Complementi ed esercizi di
programmazione
     Pascal.". Società editrice Esculapio
 -  FINDLAY, "Introduzione al Pascal : Metodo,programmi,esercizi.", ed. ETAS
[6  -  CONTRIBUTI]
----------------------------------
[7  -  HISTORY]
----------------------------------
 #ver 0.1#  (09/12/00)   La prima bozza.
[8  -  LEGALESE]
----------------------------------
Tutti i marchi citati in questo documento appartengono ai legittimi
proprietari.
Questo documento è distribuito secondo la Gnu Public License.
(
http://gongolo.usr.dsi.unimi.it/~vigna/ioi/problemi/COPIARE
)