Continua la mia avventura con le classi e le funzioni mancanti in Gambas. Questa volta mi serviva sapere se il linguaggio di programmazione del gambero implementasse la possibilità di convertire un semplice intero in una stringa che rappresentasse il numero romano corrispondente.
Dopo varie peripezie sono riuscito ad arrivare alla forma voluta.
Purtroppo il mio codice si limita a convertire numeri compresi tra 0 e 3999, non per limitazioni tecniche ma perchè non sapevo come si rappresentassero i numeri più grandi...:-D
A grandi linee il codice svolge questo lavoro: preleva, tramite la funzione, l'intero e lo converte tramite str() in una stringa su cui poter lavorare e la inverte poichè era più facile lavorare su una stringa letta al contrario (ovvero dalla fine sino all'inizio).
Fatto ciò il programma confronta, in un ciclo, tutti i caratteri presenti nella parola con quelli presenti nel SELECT CASE e analizza l'indice del conteggio del ciclo in modo da sapere il peso che la cifra ricopre nel numero. Una volta che il programma interpreta di che tipo di cifra si tratta aggiunge alla stringa il relativo simbolo romano. Infine la funzione restituisce la stringa contente il numero come gli antichi lo avrebbero letto....
IMPORTARE LA CLASSE
Come fare ad importare la classe nel proprio progetto?Prima di tutto scaricare il file in fondo al post, una volta terminato il download scompattiamo l'archivio zip e dalla cartella copiamo il file Math.class e incolliamolo nella cartella dove risiede il nostro progetto Gambas. Ora apriamo Gambas e come prima riga nel codice del form in cui utilizzeremo le funzioni della classe scriviamo quanto segue:
In questo modo possiamo accedere alla funzione con la sintassi:
Il prototipo della funzione è:
Si nota come il programma accetta un numero decimale e restituisce una stringa.
Come fare ad importare la classe nel proprio progetto?Prima di tutto scaricare il file in fondo al post, una volta terminato il download scompattiamo l'archivio zip e dalla cartella copiamo il file Math.class e incolliamolo nella cartella dove risiede il nostro progetto Gambas. Ora apriamo Gambas e come prima riga nel codice del form in cui utilizzeremo le funzioni della classe scriviamo quanto segue:
PRIVATE Math AS NEW MathIn questo modo possiamo accedere alla funzione con la sintassi:
Math.Dec2Rom()Il prototipo della funzione è:
Dec2Rom(decimal as integer) as stringSi nota come il programma accetta un numero decimale e restituisce una stringa.
Se volete scaricare il file contenente la classe math potete farlo selezionando il link nella colonna a destra.
La classe che ho scritto non è ancora completa e prevedo di implementare nuove funzioni. Qualora aveste suggerimenti per nuove funzioni da poter implementare lasciate pure un commento....sarete ascoltati...:-)