Newsgroup: it.comp.lang.pascal
Titolo: Faq by RdC (18-01-2003)

Ecco una mia raccolta di faq che troverete anche nel sito in firma...
(la prima è puramente accademica)
----------- FAQ         it.comp.lang.pascal
1)   LA FAQ di tutte le FAQs
2)   Non riesco a leggere le riposte al mio post che faccio riposto ?
3)   Quali programmi posso realizzare con il pascal
4)   Runtime Error 200
5)   Come utilizzare la unit graph.tpu
6)   Allocare dinamica mente un array
7)   Dove posso scaricare il TP 7.0
8)   Esiste un compilatore free
9)   Passaggio di parametri ad un programma da riga di comando
10) Dove posso trovare materiale utili sul web ?
11) Da pascal a C è possibile ?
12) Disabilitare CTRL+C dal mio programma
13) Posizionarsi alla riga n nel file di testo testo.txt come fare ?
14) Ho Windows Xp che compilatore mi consigliate ?
14b) Ho Linux che compilatore pascal uso ?
15) Cercare il massimo in un array
1) LA FAQ di tutte le FAQs
Prima di postare leggete le Faq
2)   Non riesco a leggere le riposte al mio post che faccio riposto ?
Vedi prima se hai avuto risposta all'indirizzo
http://mailgate.supereva.it/it/it.comp.lang.pascal/
3)  Quali programmi posso realizzare con il pascal
Non esiste nessuna limitazione alla fantasia il pascal da la possibilità di
realizzare qualsiasi tipo di progetto sviluppato secondo il paradigma
imperativo. Prima di realizzare il vostro progetto c'è da considerare il
fattore "semplicità di sviluppo" il Pascal come il C essendo così elastici
non prevedono set di istruzioni verticalizzare per determinati problemi. Lo
sviluppo di un database potrebbe essere meno costoso se realizzato con
linguaggi adatti come Clipper, Visual Basic o DB4
4)   Runtime Error 200
E' un errore generato da file eseguibili compilati su CPU lente (<200MHZ) e
fatti girare su CPU veloci, il problema si ripresenta anche nella situazione
contraria. L'errore è dovuto all'inclusione nel codice sorgente della unit
CRT. Il problema può essere risolto scaricando la pacth dal sito
www.pascallike.too.it
 sezione tools e ricompilando il sorgente.
5)   Come utilizzare la unit graph.tpu
La unit graph.tpu come tutte le unit del TP si trovano nella directory
tp\units, prima di poterla utilizzare controllatene l'esistenza.
Nell'eventualità che non sia presene scaricatela dalla rete. Successivamente
dal IDE del TP selezionate la voce Options ->Directories  nel text box Unit
Directory controllate se è stato inserito il path giusto dovrebbe esserci
una stringa come questa  : c:\tp\units
Se non c'è oppure  è errata inserite il path corretto, ricordatevi che il
Pascal è stato concepito per dos il quale non vede i nomi lunghi.
Successivamente selezionate File->New si aprirà una finestra blue dove
inserire il codice del vostro programma. Per poter utilizzare una unit
bisogna indicare al copilatore il nome,
quindi il vostro programma avrà un aspetto del genere
program provaGraph;
unit graph;
var grDriver, grMode, ErrCode : Integer;
begin
    grDriver:=Detect;
    InitGraph(grDriver,grMode,''); *
    ErrCode :=GraphResult;
    if ErrCode = grOk then
      begin
           { interfaccia grafica }
            closegraph;
       end
    else
        writeln('Errore :',GraphErrorMsg(ErrCode));
end.
* Tra gli apici va inserito il path del driver grafico che trovate nella
directory tp\bgi, in questa directory sono
presenti vari driver e vari font utilizzabili, ricordate di allegare il file
al vostro eseguibile e di cambiare il path con quello finale del driver
altrimenti se lasciat come path  : tp\bgi il vostro eseguibile cercherà il
driver in quella cartella, finchè il programma rimane sul vostro pc nessun
problema ma quando lo spostate non sarà più possibile caricarlo.
6)   Allocare dinamica mente un array
Il Pascal non permette l'allocazione dinamica di un array, per poter
effettuare questa operazione bisogna eludere il compilatore con la direttiva
{$R-} che disabilita il check degli indirizzi e  successivamente dichiarare
un array di zero caselle ed utilizzare un puntatore ad esso.
                Type DArray = array[0..0]of byte;
                DinamArray=^Darray;
Vi sconsiglo vivamente di utilizzare questo tipo di procedura in quanto
potreste "saltare" all'interno della memoria con possible blocco del pc. Non
sarebbe un bel effetto per chi utilizza il vostro programma.
7)   Dove posso scaricare il TP 7.0
No , il Turbo Pascal non è free e quindi non si può scaricare a meno di un
preventivo acquisto della licenza
8)   Esiste un compilatore free
Si, il freepascal 
www.freepascal.org
9)   Passaggio di paramentri ad un programma da riga di comando
E' possibile passare parametri al nostro programma da riga di comando
utilizzando le funzioni paramCount
ParamStr, la prima restituisce il numero di parametri passati all'eseguibile
la seconda permette di ottenere i valori passati. Per estare il programma da
IDE del Turbo Pascal prima di premere il tasto Run selezionate il menu
Run->Parameters e nel textbox inserite tutti  parametri separati da uno
spazio
10) Dove posso trovare materiale utili sul web ?
Alcune informazioni utili le potrete trovare sul sito 
www.pascallike.too.it
nella sezione links troverete altri siti che trattano di programmazione e
del pascal, non dimenticate i motori di ricerca.
11) Da pascal a C è possibile ?
Si, i due linguaggi sono grammaticalmente molto simili e quindi possibile
una facile conversione, in rete troverete vari convertitori
12)     Disabilitare CTRL+C dal mio programma
In pascal è possibili disabilitare la combinazioni di tasti CTRL+C settando
una variabile booleana a false
nel proprio programma
CheckBreak:=False
Mi raccomando attivate questo inibitore solo dopo aver provato il Vs codice,
altrimenti in caso di loop non riuscirete a fermare il programma.
13)    Posizionarsi alla riga n nel file di testo testo.txt come fare ?
Se per posizionarvi intedete indirizzare direttamente l'ennesima riga del
vostro file di testo allora NON ESISTE ALCUN MODO i file di testo sono
sequenziali e quindi non permettono l'accesso diretto, non potete nemmeno
rileggere la riga precedente a meno di ricominciare la lettura della riga
fino ad arrivare a quella desiderata. L'unico modo per arrivare alla riga n
è quello di leggere le n-1 righe che la precedono
14) Ho Windows Xp che compilatore mi consigliate ?
freepascal scaricabile dal sito 
www.freepascal.org
14b) Ho Linux che compilatore pascal uso ?
freepascal versione linux
sito : 
www.freepascal.org
15) Cercare il massimo in un array
Ecco il codice...
var vettore : array[1..10] of integer;
      i,max: integer;
begin
(* inserimento dati nel vettore *)
max:=vettore[1];
i:=2;
while (i<10) do
  begin
      if max<vettore[i] then  max:=vettore[i];
      i:=i+1;
  end;
 writeln('il massimo è ',max);
end;
----------- END FAQ
--
L'informatica è un arte
---------------------------------------------------------
 
www.pascallike.too.it
 
http://utenti.lycos.it/pascallike
 il sito sulla programmazione pascal
sorgenti, tutorial ed utility
---------------------------------------------------------

Ottimo! Inizio subito a leggerle...grazie!

 15) Cercare il massimo in un array
ottimo lavoro, avrei anche una proposta da fare: spiegare la differenza tra
il compilatore borland pascal per win e quello per il dos, spiegare xke'
unit il .tpw non funzionano in dos, e viceversa, spiegare in pratica che
esistono dei target e che ognuno ha bisogno di unit predisposte. questo
perche' mi viene molto spesso posta la domanda del tipo: perche' la unit
graph nn funziona col compilatore per windows?
che ne dici?
-- 
Ciao
Marchese Gianfranco
e-mail dgruma@NOPUBBLICITA'
tin.it
 (Da togliere NOPUBBLICITA' se vuoi
rispondermi in privato) sito internet personale:
www.turbo-pascal.cjb.net
  Tutto sul Turbo Pascal  1.5

 che ne dici?
Dico :
"Dato che sono le 18.44 del 20 Gennaio 2003 e che questa mattina ho fatto
l'esame scritto di reti, e nel pomeriggio mi sono messo a studiare algebra
ed ora che sto a casa davanti al mio Word Editor a scrivere
Realizzazione di un simulatore di una rete SMS per il sistema di
comunicazione mobile GSM
Capitolo : Aspetti implementativi  (Java 2)
E che ancora non ho manco aperto il libro di Fisica Generale I (per giunta
in inglese) e non ho scritto manco una riga delle 50 pagine richieste per la
tesina di Reti : Sistema di Web Cashing Centralizzato
E che tutto questo si protrae fino alla fine di Feb
Scrivi tu questa faq in modo tale (cut & past delle risposte che hai dato)
che al prissimo post Faq la inglobo !"
Ps.: non è che mi sono eletto facchista del NG, ma dato che spesso ci sono
sempre le stesse domande mi sembrava una cosa giusta....
Ciao RdC
I periodi neri  Gen-Feb   Giu-Lug  ....


Ciao, mi stavo giusto chiedendo non tanto il perchè, quanto se c'è un modo
di far funzionare un comando tipo
uses graph;   oppure   uses graph3;
in un programma scritto in pascal con compilatore per windows e che differ.
c'è tra i 2.
Non solo, ma vorrei sapere se per la vostra esperienza è risultato utile o
se è, in generale, un qualcosa in più.
Ste
"Marchese Gianfranco" <d.g.r.u.m.a.@VediInFirma.it> ha scritto nel messaggio
news:ajWW9.77108$AA2.3...@news2.tin.it...



Fare una cosa del genere non avrebbe senso.
perche a differenza che per il DOS la grafica
in Windows è direttamente gestita dalle api e dalla GUI
Come ho detto il mio manuale è un Manuale con la M maiuscola infatti
riporta anche la grafica tramite Windows... 
ricopio intro (Non rompete con i diritti d'autore perche "citare" una
porzione mi sempra minore del 10% e del tutto lecito si puo' perfino
fotocopiare):
16.6 Grafica in Windows
La GDI di Windows, come è facimente intuibile, è persione + potente
per la programmazione della gestione della grafica rispetto alle BGI (
quindi non ha senso usarlo - IcS ). In Turbo Pascal per windows, la
GDIe inserita nelle unit WinTypes e Win Procs. La prima contiene tutte
le definizioni dei tipi  dell'API di windows, mentre la seconda
contiene tutti i sottoprogrammi. Dato che nella unit WinPRocs sono
presenti oltre 500 routine, è praticamrnte impossibile esaminarle
tutte una alla volta. In questa sezione si inzia a utilizzare la GDI
creando gli stessi programmi utilizzati per la BGI, tranne per il
fatto che questa volta vengono eseguiti in ambiente Windows.
[MEGACUT DEL LIBRO]
 
Questo le segue è un programma che genera un po' di line sullo schermo
 
Program WinLinee;
 
Uses WinTypes, WinProcs, OWindows;
Type
  PLineeInFinestra = ^TLineeInFinestra;
  TLineeInFinestra = object ( TWindow )
      Procedure Paint ( Paint_DC: HDC; Var Paint Info : TPAintStruct
); Virtual;
End; 
 
TApplicazioneConLinee = object ( TApplication )
  procedure InitMainWindow; Virtual;
End;
Procedure TLineeInFinestra.Paint;
Var Bordi : TRect; I : Integer;
Begin
  RandSeed := 1111;
  GetClientRect ( HWindow, Bordi):
  For I := 1 To 100
   Do Begin
     MoveTo( PaintDC, Random ( Bordi. right ), Random ( Bordi.Bottom )
);
    LineTo ( PaintDC, Random ( Bordi.Right), Random ( Bordi.bottom ));
End;
End;
Procedure TApplicazioneConLinee.IntMainWindow;;
Begin
   MainWindow := New ( PLineeInFinestra, Init( NIL, 'Linee' ));
End;
Var UnaApp : TApplicazioneConLinee;
Begin
   UnaApp.Init('Linee');
   UnaApp.Run;
   UnaApp.Done;
End.
 
Come al solito si puo' fare... ma perche complicarsi la vita con quel
bordello che è Pascal per windows? Se vi piace proprio la
programmazione windows spostatevi su Delphi
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
ICQ     : 67552596
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

 Ste
Borland, con la versione numero 7 del suo compilatore, permettere di
scegliere tre diversi target di programmazione, cioe' permette di creare
applicazioni per dos, per la modalita' dos protetta e per windows (Il target
e' selezionabile dal menu Compile-Target). ogni target ha bisogno di unit
specifiche per la piattaforma indicata: le unit per dos avranno estensione
.tpu, quelle per la modalita' protetta .tpp, infine quelle per windows
avranno estensione .tpw. essendo target diversi, non potra' essere possibile
utilizzare, ad esempio, la unit crt (che funziona sotto dos) in windows; lo
stesso vale anche per le unit graph, o comunque tutte quelle che si
utilizzano generalmente sotto dos. Nel caso della unit crt, la borland ha
pensato di crearne una simile, che contiene molte delle funzioni e procedure
della crt, la wincrt, da usare quindi al posto della crt nel caso in cui il
target selezionato sia windows. nel caso delle unit graph, la situazione e'
un po' piu' complicata, in quanto non basta riscrivere le unit graph per
windows, ma bisogna addentrarsi in qualcosa di piu' complesso, che richiede
l'uso degli oggetti. nel caso si fosse interessati ad uno sviluppo della
grafica sotto windows, consiglio di passare al linguaggio Delphi, che non e'
altro che il comune linguaggio pascal, solo un bel po' piu' aggiornato. non
bisogna comunque confonedere i target dal compilatore usato, in quanto sia
dal compilatore per dos (bp.exe), sia dal compilatore per windows (bpw.exe),
potra' essere effettuata la scelta tra i diversi target, solo che non sara'
possibile eseguire una applicazione windows in dos (il contrario invece e'
fattibile).
penso che nella faq puo' essere aggiunto qualche cosa del genere, non
credete?
cmq una info, posso inserire le faq nel mio sito (in firma)?


per me nessun problema io l'ho fatto
Ciao RdC


"ReDiCuori" <redicu...@NOSPAMinwind.it> ha scritto nel messaggio
news:3QhX9.61724$0v.18...@news1.tin.it...

ok, grazie
