PDA

Visualizza la versione completa : [C] Numerali romani equivalenti di valori decimali


Rivac
27-08-2018, 15:21
Salve,

sono impatanato con l'esercizio in oggetto:

"Scrivete un programma che stampi una tabella dei numerali romani equivalenti dei numeri decimali nell'intervallo da 1a 100."

Questo Ŕ un esercizio del quarto capitolo del libro "Il linguaggio C - Fondamenti di programmazione" e gli strumenti fin qui introdotti sono tutte le strutture logiche (for, while, switch etc.).

Presumo che gli operatori filtranti siano % e /, ma non riesco ad inquadrarli nell'algoritmo per la risoluzione di questo esercizio. A meno che piazzi i numeri uno per volta in un interminabile switch. :unz::p

Qualcuno riesce a darmi una mano a chiarirmi una volta per tutto la struttura di questo esercizio?

Grazie mille in anticipo. :cool:

torn24
29-08-2018, 08:10
Ciao, penso che dovresti avere un ciclo for() che vada da 1 a 100, e poi una funzione che converta i numeri decimali in romani, per poi stamparli.
Adesso il numero romano Ŕ una stringa, quindi mi viene in mente una funzione che ha come parametri un int numero decimale, e un array di char romano[] come output.
Si possono avere soluzioni diverse a uno stesso problema "migliori o peggiori", adesso non saprei proprio dirti il modo migliore, ma ho trovato un modo abbastanza semplice per la conversione e te lo spiego.

Adesso la difficoltÓ dell'esercizio Ŕ solo nella funzione di conversione decimali-romani.
Ti puoi memorizzare in array bidimensionali le stringhe corrispondenti ai numeri romani

I II III IV V VI VII VIII IX "CIFRE 1-9"
X XX XXX XL L LX LXX LXXX XC C " VALORI DA DA 10 A 100"

Tutti i numeri compresi tra 1 e 100 possono essere formati dall'unione di queste stringhe.

esempio numero decimale 63, calcolo quante decine ci sono dividendo per 10, calcolo quante unitÓ ci sono, concateno le stringhe LX e III e ottengo LXIII

A te l'implementazione della funzione ;);)

Loading