Newsgroup: it.comp.lang.c
Titolo: algoritmo !!!! aiuto

Ragazzi scusate ma qual'è l'algoritmo che mi permette di generare  una
stringa in maniera tale da rappresentare un intero in cifra romana!!!!!
sono quasi alla fine mi manca questo pezzo!!! e poi ho risolto spero!!!!

 sono quasi alla fine mi manca questo pezzo!!! e poi ho risolto spero!!!!
E' il 3o messaggio che scrivi su questo argomento ;-)
Se usavi google e cercavi "roman numbers" avresti trovato il sito:
http://www.gwydir.demon.co.uk/jo/roman/number.htm
 che offre un servizion di
conversione da numero arabo (normale) a romano. Tale conversione viene fatta
da un codice JavaScript che essendo client-side puoi ovviamente sbirciare!
(guardando il codice della pagina HTML).
Detto questo non so se tale sito offra o meno un buon esempio di
programmazione... una buon algoritmo o un pessimo... Quello che so e' che se
guardi questo sito, ne guardi altri, ci pensi da solo e fai delle prove sono
sicuro arriverai ad una soluzione in pochissimo tempo!
Tommy

 sono quasi alla fine mi manca questo pezzo!!! e poi ho risolto spero!!!!
Ma i tuoi post non li leggi per vedere se qualcuno ti ha risposto?
Ti ho postato un link con il codice C di un programma già fatto
che ti puoi studiare fai conto che è già bello e pronto e non ti basta!
Ciao Max
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

sono quasi alla fine mi manca questo pezzo!!! e poi ho risolto spero!!!!
Non sei uno che legge molto le risposte, nevvero?
Eccoti un algoritmo (l'ho scritto di getto, spero che non ci siano
errori...)
Cmq, tu hai un numero di due cifre, no?
per prima cosa, puoi controllare che sia minore di 40...
Stamperai prima le decine, e poi le unita'.
Come fai a prendere le decine? Dividi il numero per dieci, e prendi la
parte intera: 35/10 = 3.5 -> floor(3.5) = 3
(ma basta fare una divisione intera, ovvero una divisione fra int)
Poi, metti un numero di X pari al valore delle decine.
Poi, consideri le unita'.
Come fai a prendere le unita'? hai il numero intero, e le decine...
vedi tu! (puoi anche usare il resto della divisione intera, %)
Se il numero di unita' e' maggiore od uguale a 5, ci metti una V, e
poi tante I quante ne occorrono per arrivare da 5 al numero delle
unita' (se hai 7, due I).
Se invece il numero di unita' e' minore di cinque, metti direttamente
un numero di I pari al numero di unita'.
Un consiglio: alloca un array di char per fare il numero, tipo:
char numero[20];  (in realta' per numeri minori di 40 basta piu'
corto, ma e' concettualmente poco importante).
Poi lo riempi man mano, prima la prima posizione, poi la seconda,
ecc., usando una var di appoggio.
unsigned int fill = 0;
ogni volta che aggiungi:
numero[fill++] = 'X'; // se vuoi mettere X
Alla fine termini con uno '\0' (e' il terminatore di stringa, serve
per indicare che la stringa e' finita, in modo da poterla stampare).
numero[fill] = '\0';
E poi puoi stampare la stringa.
Beh, dubito che serva, ma ora non hai piu' scuse... se hai imparato un
minimo di C, questo che ti ho detto puoi implementarlo in breve tempo.
Ciao,
Zeppe


M'hai incuriosito... il problema mi intriga.
Quasi quasi provo a scriverne uno, ma NON te lo posto :-P