Inform e Glulx/Le basi di Inform/Caratteri e stringhe: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
Riga 26:
Include "ItalianG";
 
come potete vedere, il computer visualizza <ttcode>a</ttcode>, <ttcode>terrazzo</ttcode>, <ttcode>I miei 9 gatti</ttcode>, esattamente quello che ci si aspetta. Questa volta entrano però in gioco le funzioni di stampa <ttcode>(char)</ttcode> e <ttcode>(string)</ttcode>; la prima, dice all’istruzione <ttcode>print</ttcode> di stampare a video il contenuto della variabile <ttcode>carattere</ttcode>, la seconda il contenuto delle variabili <ttcode>parola</ttcode> e <ttcode>stringa</ttcode>. Altra cosa da notare, almeno per quelli un po’ più esperti nella programmazione, è che '''in Inform (purtroppo) le variabili non si differenziano per tipo'''.
 
[[Immagine:Inform e Glulx-sp.gif|centre|435 px|]]
Riga 59:
Include "ItalianG";
 
l’istruzione <ttcode>Presskey</ttcode> da me scritta legge il carattere del tasto premuto dall’utente e ne restituisce il valore alla variabile <ttcode>car</ttcode>. Se il tasto premuto corrisponde alla lettera <ttcode>q</ttcode>, il programma termina, altrimenti richiede la pressione di un altro tasto. Potete testare tutte le lettere che volete, ma se si volessero usare dei tasti "particolari" come ad esempio la ''barra spaziatrice'' o ''Esc''?<br>
In questo caso bisogna ricorrere all’utilizzo dei ''codici ZSCII'' (attenzione, non ASCII), perché a ogni simbolo rappresentato sulla tastiera, corrisponde un determinato codice numerico indicante il carattere, e varia a seconda del sistema operativo e dei programmi che si stanno usando. Sul mio computer (un PC equipaggiato con Windows XP), ecco a quali codici corrispondono i seguenti tasti:
* '''8''' per il tasto '''Delete'''
Riga 66:
* '''32''' per la '''barra spaziatrice'''
 
volendo quindi terminare il programma premendo la barra spaziatrice, occorre modificare il ciclo <ttcode>do-until</ttcode> nel seguente modo:
 
print "^Premi spazio per uscire^";
Riga 76:
];
 
se usate Linux o il Mac-OS, per sapere a quali codici corrispondono i vostri tasti, potete inserire una <ttcode>print car;</ttcode> sotto la riga <ttcode>car = Presskey();</ttcode>. Provate a premere un tasto che sia diverso dalla barra spaziatrice, e vedete quale numero appare sul video: quello è il codice effettivo da usare nel test.
 
Sempre per quanto riguarda la gestione dei caratteri e delle stringhe, Inform mette a disposizione alcune istruzioni molto utili, rappresentate nell’esempio che segue:
Riga 111:
 
{| style="width:100%;" class="wikitable"
| <ttcode>A</ttcode>
 
<ttcode>a</ttcode>
 
<ttcode>ciao Andrea!</ttcode>
 
<ttcode>Lunghezza: 12</ttcode>
 
<ttcode>Ciao Andrea!</ttcode>
|}
 
L’istruzione <ttcode>UpperCase</ttcode> converte il carattere passatole come parametro da minuscolo a maiuscolo, mentre l’istruzione <ttcode>LowerCase</ttcode> fa esattamente l’opposto (converte cioè un carattere da maiuscolo a minuscolo). L’istruzione <ttcode>Length</ttcode> restituisce la lunghezza di una stringa passatale come parametro (restituisce, cioè, il numero totale di caratteri che compongono quest’ultima) mentre la funzione di stampa <ttcode>(Cap)</ttcode> stampa a video la stringa con la prima lettera maiuscola.
 
[[Immagine:Inform e Glulx-sp.gif|centre|435 px|]]
Riga 156:
Include "ItalianG";
 
le stringhe sono uguali, ma la condizione dell’istruzione <ttcode>if</ttcode> viene ignorata. A questo punto, le sole variabili non bastano più, e bisogna passare ai [[w:Array|vettori]] (o in inglese [[w:Array|array]])<ref>Cliccate [http://www.vincenzoscarpa.it/inform/manuale/Capitolo3_esercizi.zip qui] per scaricare i listati di questi quattro esercizi (i file '''3.14_1.inf''', '''3.14_2.inf''', '''3.14_3.inf''' e '''3.14_4.inf''').</ref>.
 
== Note ==