mercoledì 17 giugno 2026

C# convertire un numero romano in numero

Di seguito viene illustrata una tecnica per convertire un numero romano in numero arabo, il tutto nel linguaggio di programmazione C# in un progetto Windows Forms e .NET 10.

Si creano due variabili array a livello di classe di tipo string e int, di seguito il frammento di tale dichiarazione.



C#

private static readonly int[] valori =

     {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

 private static readonly string[] simboli =

     {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};


Si crea una funzione che converte un numero in numero romano, questa funzione ci permette di verificare la corretta conversione .


C#

public static string ConvertiInNumeriRomano(int numero)

 {

     if (numero < 1 || numero > 2100)

         throw new ArgumentOutOfRangeException(nameof(numero),

             "Il numero deve essere compreso tra 1 e 2100.");

 

     var risultato = string.Empty;

 

     for (int i = 0; i < valori.Length; i++)

     {

         while (numero >= valori[i])

         {

             numero -= valori[i];

             risultato += simboli[i];

         }

     }

 

     return risultato;

 }



Si crea la funzione che utilizzeremo per convertire il numero romano in numero. Di seguito tale frammento di codice.


C#

public static int ConvertiRomanoInNumero(string romano)

 {

     if (string.IsNullOrWhiteSpace(romano))

         throw new ArgumentException("Il numero romano non può essere vuoto.");

 

     romano = romano.ToUpper();

 

     //Associo simboli a numeri

     var mappa = new Dictionary<char, int>

 {

     {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50},

     {'C', 100}, {'D', 500}, {'M', 1000}

 };

 

     int totale = 0;

     int valorePrecedente = 0;

 

     foreach (char c in romano)

     {

         if (!mappa.ContainsKey(c))

             throw new ArgumentException($"Simbolo romano non valido: {c}");

 

         int valore = mappa[c];

 

         //Se il valore attuale è maggiore del precedente, significa sottrazione

         if (valore > valorePrecedente)

         {

             totale += valore - 2 * valorePrecedente;

         }

         else

         {

             totale += valore;

         }

 

         valorePrecedente = valore;

     }

 

     //Valido se la conversine è andata a buon fine, trasformandolo in numero romano

     string ricostruito = ConvertiInNumeriRomano(totale);

     if (ricostruito != romano)

         throw new ArgumentException("Numero romano non valido o formato scorretto.");

 

     return totale;

 }



Ora non resta che scrivere il codice, che dato un valore di un numero romano, lo converte in un numero.

C#

private void BtnConvertRomanoToNumero_Click(object sender, EventArgs e)

 {

     try

     {

 

 

              

         int numero = ConvertiRomanoInNumero(TxtNumeri.Text);

         MessageBox.Show($"Numero convertito: {numero}");

 

 

     }

     catch (ArgumentOutOfRangeException ex)

     {

         MessageBox.Show("Errore:" + ex.Message);

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore:" + ex.Message);

     }

 }

lunedì 15 giugno 2026

Recensione libro - Il Primo Manifestatore: perché Gesù aveva ragione e la scienza sta iniziando a scoprirlo

 

libro il primo manifestatore


Editore ‏ : ‎                          Indipendente

Data di pubblicazione ‏ : ‎  6 maggio 2026

Lingua ‏ : ‎                           Italiano

Lunghezza stampa ‏ : ‎       236 pagine

ISBN-13 ‏ : ‎                        979-8195842109

Peso articolo ‏ : ‎                 322 g

Dimensioni ‏ : ‎                    15.24 x 1.37 x 22.86 cm

Autore:                                      Alessandro Balzarelli


Descrizione:

L’amico Alessandro torna con un nuovo libro dopo il grande successo della sua prima pubblicazione, “Il punto Zero Interiore”.

In questa nuova opera, “Il Primo Manifestatore: perché Gesù aveva ragione e la scienza sta iniziando a scoprirlo”, Alessandro Balzarelli, per gli amici Alex, affronta con attenzione e sensibilità un tema importante e molto sentito, quello della religione.

Non si tratta di un manuale religioso né di un romanzo, ma di un percorso di scoperta interiore che prende spunto dalla tradizione cristiana e dai suoi insegnamenti.

Nel libro, l’autore analizza aspetti della religione con uno sguardo contemporaneo, confrontandosi con le interpretazioni e le risposte che negli ultimi anni state proposte dalle persone, offrendo al tempo stesso profonde riflessioni di carattere umano.

Il libro è acquistabile su Amazon, dal seguente sito https://www.amazon.it/Primo-Manifestatore-ragione-iniziando-scoprirlo/dp/B0GZW2RLCL






domenica 14 giugno 2026

Github impostare una presentazione nel proprio profilo

Introduzione

Quando un visitatore accede al nostro profilo GitHub, oltre alle informazioni configurate per l'account, può visualizzare i repository pubblici e altri dettagli che abbiamo scelto di condividere.

Può essere utile creare una breve presentazione del profilo, così da fornire informazioni su noi stessi, sui nostri progetti o su altri aspetti che desideriamo mettere in evidenza.

In questo modo, chiunque visiti il profilo troverà una pagina introduttiva in grado di offrire una descrizione chiara dell'autore e delle sue attività.


Creazione della presentazione

Dopo aver effettuato l'accesso al nostro account GitHub, apriamo la pagina del profilo, come illustrato nella figura 1.

GITHUB creazione di presentazione del proprio profilo
Figura 1 – La pagina principale


Creiamo un nuovo repository con lo stesso nome dell'account. Nel mio caso, il repository si chiamerà emanuele2025.

Nella sezione "Repository", facciamo clic sul pulsante "New", come mostrato nella figura 2.

GITHUB creazione di presentazione del proprio profilo
Figura 2 – La pagina per la creazione dei report


Dopo aver fatto clic sul pulsante verde “New”, si apre la pagina per la creazione di un nuovo repository. Nel campo dedicato al nome del repository, inseriamo lo stesso nome utilizzato per l’account GitHub. A questo punto verrà visualizzato un messaggio che indica che si tratta di un repository speciale, come mostrato nella Figura 3.

GITHUB creazione di presentazione del proprio profilo
Figura 3 – Creazione del repository con lo stesso nome dell’account


Dopo aver fatto clic sul pulsante verde “Create repository” (Figura 4), il repository verrà creato.

GITHUB creazione di presentazione del proprio profilo
Figura 4 – Il pulsante per la creazione del repository


Dopo aver fatto clic sul pulsante “Create repository”, verrà aperta la pagina del repository. In essa sarà presente il collegamento ipertestuale “README”, come mostrato nella Figura 5.


GITHUB creazione di presentazione del proprio profilo
Figura 5 – La pagina della creazione del repository


Dopo aver fatto clic sulla voce “README”, verrà aperta una pagina nella quale sarà possibile modificare il file README appena creato, come mostrato nella Figura 6.

GITHUB creazione di presentazione del proprio profilo
Figura 6 – Pagina del file Readme


A questo punto, apportiamo le modifiche di nostro interesse.

Una volta apportate le modifiche, facciamo clic sul pulsante “Preview” per visualizzare l’anteprima di come verranno pubblicate, come mostrato nella Figura 7.

GITHUB creazione di presentazione del proprio profilo
Figura 7 – L’anteprima delle modifiche apportate


Se le modifiche sono di nostro gradimento, non resta che pubblicarle.

Le modifiche diventeranno effettive solo dopo aver eseguito il commit. Facendo clic sul pulsante verde “Commit changes…”, situato in alto a destra, salviamo le modifiche apportate.

Verrà quindi visualizzata una pagina nella quale sarà possibile inserire commenti e informazioni che descrivono il motivo delle modifiche effettuate.

Possiamo confermare il messaggio suggerito oppure personalizzarlo, quindi fare clic sul pulsante “Commit changes” (Figura 8).


GITHUB creazione di presentazione del proprio profilo
Figura 8 – La pagina della conferma delle modifiche


Dopo aver fatto clic sul pulsante “Commit Changes”, verrà visualizzata una pagina (Figura 9) che mostrerà il risultato delle modifiche apportate. In questa pagina sarà inoltre presente un pulsante che consentirà di modificare il file README oppure di visualizzare il profilo.

GITHUB creazione di presentazione del proprio profilo
Figura 9 – La pagina pubblicata


Tutti coloro che visiteranno il nostro profilo GitHub troveranno la presentazione appena creata e, al di sotto di essa, le informazioni statistiche relative ai vari repository, come mostrato nella Figura 10.


GITHUB creazione di presentazione del proprio profilo
Figura 10 – La pagina principale del proprio account


Conclusioni

In questo articolo abbiamo illustrato al lettore come creare una presentazione del proprio account GitHub, guidandolo passo dopo passo nelle diverse fasi della procedura.

Con pochi semplici passaggi è possibile realizzare una presentazione accattivante del proprio profilo GitHub, fornendo ai visitatori una panoramica chiara e immediata delle proprie attività, dei progetti pubblicati e delle informazioni che si desidera mettere in evidenza.

.NET componente gratuito per la grafica SkiaSharp

 

componente gratuito Skiasparp

Il componente gratuito ed open source SkiaSharp, qui https://mono.github.io/SkiaSharp/  il sito,  permette di effettuare operazioni anche complessi sulla grafica.

Questo componente, multi piattaforma e da utilizzare in vari ambiti (Windows Forms, WEB, Mobile, etc) , fornisce al programmatore funzionalità avanzate sulla grafica, effetti grafici ed altro ancora.

Un componente gratuito molto potente ed efficiente, scaricabile tramite Nuget.

Qui https://github.com/mono/SkiaSharp  il sorgente.


sabato 13 giugno 2026

C# convertire un numero in formato numero romano

Nel caso che si ha la necessità di convertire un numero in formato romano nel linguaggio di programmazione C#,  tramite l'esempio qui di seguito illustra una tecnica di conversione.

In alto, sopra ad ogni dichiarazione, scriviamo due variabili di tipo array string, che possono essere utilizzati nella form (progetto Windows Forms) , in qualsiasi parte.


C#

private static readonly int[] valori =

     {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

 private static readonly string[] simboli =

     {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};



Dopo aver creato i due campi, si crea una funzione, che verifica se il numero passato rispetta un certo range di valori, ed in caso positivo, converte il numero 

C#

public static string ConvertiInNumeriRomano(int numero)

 {

     if (numero < 1 || numero > 2100)

         throw new ArgumentOutOfRangeException(nameof(numero),

             "Il numero deve essere compreso tra 1 e 2100.");

 

     var risultato = string.Empty;

 

     for (int i = 0; i < valori.Length; i++)

     {

         while (numero >= valori[i])

         {

             numero -= valori[i];

             risultato += simboli[i];

         }

     }

 

     return risultato;

 }

 




Nell'evento click di un pulsante verifichiamo se abbiamo digitato in un controllo Textbox un valore numerico, ed in caso di esito positivo, lo passiamo alla funzione appena creata.

Di seguito il frammento di codie dell'evento click del pulsante.

C#

private void BtnConvertiNumeriRomani_Click(object sender, EventArgs e)

{

    try

    {

 

 

        if (!int.TryParse(TxtNumeri.Text, out int anno))

        {

            MessageBox.Show("Errore: inserire un numero intero valido.");

            return;

        }

        string numeroRomano = ConvertiInNumeriRomano(anno);

        MessageBox.Show($"Numero romano: {numeroRomano}");

 

 

    }

    catch (ArgumentOutOfRangeException ex)

    {

        MessageBox.Show("Errore:" + ex.Message);

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore:" + ex.Message);

    }

}