Skip to content


Imparare il Pascal: Hello World

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:

  1. program helloworld;
  2.  
  3. begin
  4.  
  5. writeln('Hello World!');
  6.  
  7. readln;
  8.  
  9. 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è?
Be Sociable, Share!

Posted in Pascal.

Tagged with , , , , .


12 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. DAMYSOFTWARE (C) - Damy says

    Ciao complimenti per la guida e molta chiara .

    ARRIVEDERCI by Damy

    /* Scegliete LINUX e non ve ne pentirete */

  2. Salvatore Barbera says

    @DAMY: grazie a te per la visita!

  3. DAMYSOFTWARE (C) - Damy - says

    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 *|

  4. Salvatore Barbera says

    ti basta scrivere sul terminale:

    sudo aptitude install fp-compiler

    grazie ancora, ma la guida è di Antonio 😛

  5. Carlo says

    Grazie per la guida esauriente. Complimenti!!!

  6. Marco GRAZIA says

    Wow mi riporti indietro di 15 anni, quando giocavo col mitico Turbo Pascal della Borland.

    M.

  7. Antonio Barba says

    eheh! io ho saltato quella fase, ho fatto il salto diretto dal BASIC V2 della microsoft (detto anche Commodore BASIC per il C64) al C++ Builder per Windows…

  8. Damy says

    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 ??

  9. nalex says

    ottima
    veramente ottima!!!

    🙂 😉

  10. Tony Di Bernardo says

    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 🙂

  11. steep says

    io riesco a creare il testo e a compilarlo ma non si salva e non riesco ad eseguirlo.



Some HTML is OK

or, reply to this post via trackback.