Oggi scriveremo il nostro primo programma in Pascal. Come ogni guida che si rispetti, iniziamo con un semplice “Hello World” per poi scendere nel dettaglio delle varie istruzioni e comandi del Pascal.

Presumo che abbiate già installato un compilatore Pascal e che abbiate dato uno sguardo al suo manuale, per avere idea di come compilare ed eseguire un programma sulla vostra piattaforma. Negli esempi che farò non mi occuperò del compilatore, ma soltanto del linguaggio in modo da essere più neutrale possibile.

Un piccolo cenno riguardo la mia configurazione

Se usate Ubuntu come sistema operativo potete installare e usare Free Pascal, che è il compilatore che userò io per scrivere le guide, con pochi e semplici comandi:

Installazione: sudo apt-get install fp-compiler fp-units-rtl
Compilazione di un sorgente: fpc nomefile.pas
Esecuzione di un programma: ./nomefile

Per scrivere il codice sorgente userò Gedit (Applicazioni -> Accessori -> Editor di testo) perchè mi consente di evidenziare la sintassi, ma potete usare un editor qualunque. Vi consiglio Scite, Bluefish, Gedit, Kate, nano o altri simili.


Iniziamo

Scriviamo con il nostro editor preferito il seguente listato:

program helloworld;

begin

   writeln('Hello World!');

   readln;

end.

salviamolo come hello.pas compiliamolo ed eseguiamolo, otterremo questo output:

Hello World!

Per terminare il programma bisogna premere il tasto Invio.

Spiegazione

program è la parola chiave che identifica l’inizio di un sorgente, serve a stabilire il nome del programma, ma non influisce sul nome del file una volta compilato;

helloworld è il nome del programma, può contenere lettere, numeri e underscore (il carattere ” _ “), ma deve iniziare con una lettera o un underscore. In termini tecnici un “nome” viene detto identificatore e tutti gli identificatori in Pascal devono seguire queste regole;

; il punto e virgola indica la fine di un’istruzione, va inserito sempre al termine delle istruzioni tranne in alcuni casi particolari che esamineremo di volta in volta;

begin indica l’inizio di un blocco di programma, in questo caso il programma è costituito da un unico blocco, quindi va posto all’inizio, subito dopo program;

writeln(‘Hello World!’); come facilmente intuibile, questo comando serve per stampare a schermo delle informazioni, in questo caso stampa il contenuto della stringa tra singoli apici, come ‘Hello World!’, e riporta il cursore a capo. Esiste la variante write che è identica a questa ma non va a capo;

readln; serve per leggere l’input, in questo caso particolare attende il tasto Invio, uno stratagemma per impedire che la finestra dell’output scompaia ancora prima di riuscire a leggere il risultato del programma (se eseguite il programma da un terminale, invece di cliccare sulla sua icona, l’uso di questo comando è superfluo, in quanto l’output rimane sul terminale e può essere comodamente letto senza difficoltà);

end. chiude un blocco di programma, in questo caso delimita la fine dell’intero programma, quindi si scrive il punto “.” al posto del punto e virgola “;” per indicare al compilatore che il sorgente termina in quel punto.

Esercizi

  1. Compila ed esegui il sorgente proposto;
  2. prova ad inserire degli errori (ad esempio omettendo il punto e virgola) per prendere confidenza con i messaggi di errore del compilatore;
  3. scrivi un programma che faccia un conto alla rovescia, dove bisogna premere il tasto Invio ad ogni numero successivo, ad esempio
    3.. <Invio>
    2.. <Invio>
    1.. <Invio>
    Go!
  4. riscrivi il sorgente del programma dell’esempio senza mai andare a capo, una istruzione dietro l’altra. Il sorgente compila ugualmente? perchè?
13 commenti
  1. DAMYSOFTWARE (C) - Damy -
    DAMYSOFTWARE (C) - Damy - dice:

    Ciao io uso Ubuntu solo che non riesco a scaricare il Free Pascal, volevo chiedervi se potevate mandarmelo su damy_@hotmail.it
    Spero che leggete presto l’email e mi mandate il Free Pascal che mi serve urgente.
    Complimenti ancora Salvatore….

    |*Usate Linux conviene costa 0,00€ è sicuro mentre Winzoz >500€ non sicuro *|

    Rispondi
  2. Damy
    Damy dice:

    Ciao io ho istallato fpc solo che sul terminale digito fpc ed esce una help di tutti i comandi a me serve come far partire il compilatore scirverci compilare etc.. Come devo fare ??

    Rispondi
  3. Tony Di Bernardo
    Tony Di Bernardo dice:

    Mi riporta proprio agli inizi subito dopo il QuickBasic! Con il TP 7 ho scritto un clone del mitico Norton Commander (chi se lo ricorda?) soltanto che all’interno del sorgento ho dovuto inserire non poco assembler “inline” 😉

    Program CountDown;
    Var i, inizio: Integer;

    Begin
    Writeln(‘Inserire il valore di partenza (max 10000): ‘);
    Readln(inizio);

    For i := inizio downto 1 do
    Begin
    Writeln(i);
    Readln;
    End;
    End.

    Non ho provato a compilarlo ma dovrebbe funzionare… l’ultima volta che ho messo mano ad un compilatore è stato per inserire delle funzioni assembler decompilate da un collega da un altro prg e fare un attacco brute force ad un sistema di cifratura proprietario…. ahh che ricordi 🙂

    Rispondi

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *