Inform e Glulx/Le basi di Inform/Salti ed etichette: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
Riga 1: Riga 1:
==Salti ed etichette==
==Salti ed etichette==
In Inform, esiste anche l’istruzione <tt>jump</tt> in grado di controllare l’esecuzione del programma, come accade nel seguente esempio:
In Inform, esiste anche l’istruzione <code>jump</code> in grado di controllare l’esecuzione del programma, come accade nel seguente esempio:


! Esempio sull'utilizzo dell'istruzione JUMP
! Esempio sull'utilizzo dell'istruzione JUMP
Riga 40: Riga 40:
Include "ItalianG";
Include "ItalianG";


L’istruzione <tt>.Inizio;</tt> è un’[[w:Etichetta_(informatica)|etichetta]] (in inglese [[w:Etichetta_(informatica)|label]]) alla quale l’istruzione <tt>jump</tt> fa sempre riferimento. Alla fine della funzione <tt>Domanda</tt>, l’istruzione <tt>if (count < TENTATIVI) jump Inizio;</tt> dice al compilatore: '''se il valore contenuto nella variabile <tt>count</tt> è minore del valore della costante <tt>tentativi</tt>, vai all’etichetta <tt>Inizio</tt>, altrimenti prosegui'''.
L’istruzione <code>.Inizio;</code> è un’[[w:Etichetta_(informatica)|etichetta]] (in inglese [[w:Etichetta_(informatica)|label]]) alla quale l’istruzione <code>jump</code> fa sempre riferimento. Alla fine della funzione <code>Domanda</code>, l’istruzione <code>if (count < TENTATIVI) jump Inizio;</code> dice al compilatore: '''se il valore contenuto nella variabile <code>count</code> è minore del valore della costante <code>tentativi</code>, vai all’etichetta <code>Inizio</code>, altrimenti prosegui'''.


In questo modo abbiamo simulato un ciclo <tt>do-until</tt>, ovviamente a scopo puramente didattico e dimostrativo; non ha alcun senso, infatti, simulare qualcosa che esiste già. Questo stratagemma veniva utilizzato moltissimo con alcuni vecchi Basic degli anni ’80, che di fatto non avevano i cicli <tt>while</tt> e <tt>do... until</tt> e dovevano in qualche modo "arrangiarsi".
In questo modo abbiamo simulato un ciclo <code>do-until</code>, ovviamente a scopo puramente didattico e dimostrativo; non ha alcun senso, infatti, simulare qualcosa che esiste già. Questo stratagemma veniva utilizzato moltissimo con alcuni vecchi Basic degli anni ’80, che di fatto non avevano i cicli <code>while</code> e <code>do... until</code> e dovevano in qualche modo "arrangiarsi".


È bene comunque sapere che Inform mette a disposizione anche questa possibilità, perché, in alcune funzioni particolarmente complesse, potrebbe rivelarsi una valida scappatoia<ref>Cliccate [http://www.vincenzoscarpa.it/inform/manuale/Capitolo3_esercizi.zip qui] per scaricare il listato di questo esercizio (il file '''3.13.inf''').</ref>.
È bene comunque sapere che Inform mette a disposizione anche questa possibilità, perché, in alcune funzioni particolarmente complesse, potrebbe rivelarsi una valida scappatoia<ref>Cliccate [http://www.vincenzoscarpa.it/inform/manuale/Capitolo3_esercizi.zip qui] per scaricare il listato di questo esercizio (il file '''3.13.inf''').</ref>.

Versione delle 19:03, 3 ago 2018

Salti ed etichette

In Inform, esiste anche l’istruzione jump in grado di controllare l’esecuzione del programma, come accade nel seguente esempio:

! Esempio sull'utilizzo dell'istruzione JUMP

Include "Parser"; Include "VerbLib"; Include "Replace";
Constant TENTATIVI 5;
[ Funz_princip; ClearScreen(); ! pulisce lo schermo Domanda(); print "^Premi un tasto per uscire^"; KeyCharPrimitive(); ! legge un carattere dalla tastiera ];
[ Domanda x count; count = 0; .Inizio; print "^Ogni quanti anni compare la cometa di Halley? "; x = GetNumber(2); if (x == 76) { print "La risposta @`e esatta!!!^"; count = TENTATIVI; } else print "Spiacente, la risposta non @`e esatta...^"; count++; if (count < TENTATIVI) jump Inizio; ];
[ Initialise; Funz_princip(); quit; ! fine del programma ];
Include "Io"; Include "ItalianG";

L’istruzione .Inizio; è un’etichetta (in inglese label) alla quale l’istruzione jump fa sempre riferimento. Alla fine della funzione Domanda, l’istruzione if (count < TENTATIVI) jump Inizio; dice al compilatore: se il valore contenuto nella variabile count è minore del valore della costante tentativi, vai all’etichetta Inizio, altrimenti prosegui.

In questo modo abbiamo simulato un ciclo do-until, ovviamente a scopo puramente didattico e dimostrativo; non ha alcun senso, infatti, simulare qualcosa che esiste già. Questo stratagemma veniva utilizzato moltissimo con alcuni vecchi Basic degli anni ’80, che di fatto non avevano i cicli while e do... until e dovevano in qualche modo "arrangiarsi".

È bene comunque sapere che Inform mette a disposizione anche questa possibilità, perché, in alcune funzioni particolarmente complesse, potrebbe rivelarsi una valida scappatoia[1].

Note

  1. Cliccate qui per scaricare il listato di questo esercizio (il file 3.13.inf).