Inform e Glulx/Le basi di Inform/Salti ed etichette: differenze tra le versioni
Nessun oggetto della modifica |
m Bot: sostituzione tag obsoleti |
||
Riga 1: | Riga 1: | ||
==Salti ed etichette== |
==Salti ed etichette== |
||
In Inform, esiste anche l’istruzione < |
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 < |
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 < |
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