DE DECIMAL A ROMANO 1-3999

EVELYN
27 de Abril del 2008
HOLA NECECITO QUE ALGUIEN ME AYUDE HACER UN PROGRAMA EN C QUE CONVIERTA DE DECIMAL A ROMANO EN TURBO C DEL 1 HASTA EL 3999 CON EL CICLO WHILE. ME URGE QUE ME AYUDEN. PORFAVOR ESPARA UN EXTRA

Noel Solw
27 de Abril del 2008
// program k1_17.CPP - page 16
// romanic numeration system, range : 0 < num < 4000
// c++ exercices book - dr. gershon kagan (first edition : 2001)
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>

int GetData()
{
int num;
cout << "decimal number = ";
cin >> num;
return num;
} // GET DATA

void Process(int num)
{
cout << endl << " roman number = ";
switch(num / 1000)
{
case 3 : cout << "M";
case 2 : cout << "M";
case 1 : cout << "M";
} // SWITCH
num %= 1000;
switch(num / 100)
{
case 3 : cout << "C";
case 2 : cout << "C";
case 1 : cout << "C";
break;
case 4 : cout << "C";
case 5 : cout << "D";
break;
case 6 : cout << "DC";
break;
case 7 : cout << "DCC";
break;
case 8 : cout << "DCCC";
break;
case 9 : cout << "CM";
} // SWITCH
num %= 100;
switch(num / 10)
{
case 3 : cout << "X";
case 2 : cout << "X";
case 1 : cout << "X";
break;
case 4 : cout << "X";
case 5 : cout << "L";
break;
case 6 : cout << "LX";
break;
case 7 : cout << "LXX";
break;
case 8 : cout << "LXXX";
break;
case 9 : cout << "XC";
} // SWITCH
num %= 10;
switch(num)
{
case 3 : cout << "I";
case 2 : cout << "I";
case 1 : cout << "I";
break;
case 4 : cout << "I";
case 5 : cout << "V";
break;
case 6 : cout << "VI";
break;
case 7 : cout << "VII";
break;
case 8 : cout << "VIII";
break;
case 9 : cout << "IX";
} // SWITCH
cout << endl << endl;
} // PROCESS

void main()
{
int decimal;
clrscr();
for(;;)
{
decimal = GetData();
if (!decimal)
break;
if ((decimal < 0) || (decimal > 3999))
cout << "out of range" << endl << endl;
else
Process(decimal);
}
cout << endl << "end of program - good bye ! ! ! " << endl;
getch();
} // MAIN

/*
decimal number = 7
roman number = VII

decimal number = 17
roman number = XVII

decimal number = 117
roman number = CXVII

decimal number = 1170
roman number = MCLXX

decimal number = 0

end of program - good bye ! ! !
*/