Vai al contenuto

Inform e Glulx/Le basi di Inform/L'input dei dati numerici: l'istruzione Getnumber

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Riesaminando per un attimo l’esempio del paragrafo precedente:

[ Funz_princip x n;
  x = 5;
  ClearScreen(); ! pulisce lo schermo
  n = Quadrato(x); print "Il quadrato di ", x , " @`e ", n , ".^";
  print "^Premi un tasto per uscire^";
  KeyCharPrimitive(); ! legge un carattere dalla tastiera			
];

[ Quadrato number; return number*number; ];

notiamo che, se vogliamo elevare al quadrato un numero diverso da 5, dobbiamo modificare il valore di x (ad esempio x = 10;) e poi ricompilare ed eseguire il tutto. Decisamente scomodo, non vi pare?
Inform stesso (che pur essendo un linguaggio di programmazione strepitoso è ben lungi dall’essere un prodotto perfetto), non ci viene minimamente incontro in un caso come questo, perché non esiste di default un’istruzione che chieda all’utente di inserire un numero dalla tastiera. Fortunatamente però, è possibile includere in un programma delle nuove funzioni che possono risolvere qualsiasi tipo di problema (rimanendo ovviamente relegati nell’ambito delle avventure testuali). Vediamo ora come possiamo scrivere un esempio che possa fare al caso nostro[1]:

! Esempio sul passaggio dei parametri  - versione 3

Include "Parser"; Include "VerbLib"; Include "Replace";
[ Funz_princip x n; ClearScreen(); ! pulisce lo schermo print "^Inserire il numero da elevare al quadrato: "; x = GetNumber(2); n = Quadrato(x); print "Il quadrato di ", x ," @`e ", n ,".^"; print "^Premi un tasto per uscire^"; KeyCharPrimitive(); ! legge un carattere dalla tastiera ];
[ Quadrato number; return number*number; ];
[ Initialise; Funz_princip(); quit; ! fine del programma ];
Include "Io"; Include "ItalianG";

L’istruzione include "Io"; dice al compilatore che una parte del codice da compilare è contenuto nel file Io.h, contenente a sua volta l’istruzione Getnumber da me scritta (che acquisisce in input il numero digitato dall’utente). Il file deve trovarsi nella directory "C:\inform\libraries" (se state usando WIDE) o "C:\Programmi\Jif\lib\Contrib" (se state usando JIF) e potete reperirlo nella directory libraries del file Capitolo3_esercizi.zip.
GetNumber ha bisogno di sapere da quante cifre è composto il numero che l’utente deve digitare (1, 2, 3, 4 o 5), e il valore che ritorna (il numero stesso) deve essere contenuto in una variabile (altrimenti viene perso, ricordate?). Non sono inoltre ammessi i numeri negativi e con la virgola. Questa istruzione è quindi in grado di elaborare dei numeri che vanno da un minimo di 0 a un massimo di 32767, un range più che sufficiente nell’ambito delle avventure testuali.

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