Convertire un intero in un numero romano


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:


PRIVATE Math AS NEW Math

In questo modo possiamo accedere alla funzione con la sintassi:


Math.Dec2Rom()

Il prototipo della funzione è:

Dec2Rom(decimal as integer) as string

Si 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…:-)

Implementare il beep con Gambas


Un pò di tempo fa si discuteva del fatto che nel linguaggio Gambas non era implementata una delle funzioni più elementari del mondo: il beep. Ebbene si, quel suono alle volte così fastidioso può risultare in alcuni momenti utile per avvisare, ad esempio, un utente che un processo ha terminato di funzionare o che un ciclo è finito.


In altri linguaggi è presente la funzione BEEP che ovvia al problema ma allora in gambas come si può fare? Per ovviare al problema ho creato una classe di nome
sistema che contiene due funzioni: Beep a CanBeep. Analizziamole

BEEP

Questa funzione permette di eseguire un semplice beep con l’istruzione:


sistema.Beep()

oppure permette di impostare quante volte si vuole ripetere il beep e quanto tempo (in secondi) deve passare tra un suono e l’altro semplicemente con l’istruzione:


sistema.Beep(ripetizioni,secondi)

CANBEEP

Questa funzione restituisce un valore booleano che indica se nel sistema è installato xkbbell, ovvero il programma che permette alla classe di funzionare. La sintassi è:


sistema.CanBeep()

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 sistema.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 sistema AS NEW sistema

In questo modo avremo sempre disponibili le funzioni all’interno della classe. Spero che il mio codice possa essere utile. buy CBD products come sempre in attesa di responsi….:-)

Se volete scaricare la classe potete farlo selezionando il link Gamba-classe-sistema comodamente nel box DOWNLOAD nella colonna qui a destra.