Equivalente de valores decimais em números romanos. Escreva um programa que imprima uma tabela de todos os equivalentes em números romanos dos números decimais no intervalo de 1 a 100.
Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Vamos criar um programa que consiga exibir todo os valores equivalente em números romanos no intervalo de 1 a 100. Vamos colocar cada valor equivalente em decimal dentro de um case do switch para que seja exibindo os números romanos. Para isso vamos separar em dois switches, um para os decimais e os outros para a parte unitária.
Passo 2
Escrevendo o programa:
#include
int main( void )
{
int loop;
/* contador de loops */
int div;
/* dígito das dezenas */
int mod;
/* um dígito */
/* exibe os cabeçalhos das tabelas */
printf( " Roman\nNumeral\t\tDecimal\n" );
/* loop 100 vezes */
for ( loop = 1; loop
div = loop / 10; /* dígitos das dezenas separados */
mod = loop % 10;
/* dígitos separados */
/* estrutura de troca para dígito das dezenas */
switch ( div ) {
/* imprime o numeral romano apropriado para o dígito das dezenas */
case 0:
break;
case 1:
printf( "X" );
break; /* exit switch */
case 2:
printf( "XX" );
break; /* exit switch */
case 3:
printf( "XXX" );
break; /* exit switch */
case 4:
printf( "XL" );
break; /* exit switch */
case 5:
printf( "L" );
break; /* exit switch */
case 6:
printf( "LX" );
break; /* exit switch */
case 7:
printf( "LXX" );
break; /* exit switch */
case 8:
printf( "LXXX" );
break; /* exit switch */
case 9:
printf( "XC" );
break; /* exit switch */
case 10:
printf( "C" );
break; /* exit switch */
default:
break; /* exit switch */
} /* end switch */
/* estrutura de troca para um dígito */
switch( mod ) {
/* imprime o numeral romano apropriado para um dígito */
case 0:
printf( "\t\t%4d\n", div * 10 );
break; /* exit switch */
case 1:
printf( "I\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 2:
printf( "II\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 3:
printf( "III\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 4:
printf( "IV\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 5:
printf( "V\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 6:
printf( "VI\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 7:
printf( "VII\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 8:
printf( "VIII\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 9:
printf( "IX\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 10:
printf( "X\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
default:
break; /* exit switch */
} /* end switch */
} /* end for */
return 0;
} /* end main */
Agora só compilar e teremos a nossa tabela com todos os números romanos de 1 até 100.
E assim finalizamos o exercício galera!!! Até o próximo.
Resposta
#include
int main( void )
{
int loop;
/* contador de loops */
int div;
/* dígito das dezenas */
int mod;
/* um dígito */
/* exibe os cabeçalhos das tabelas */
printf( " Roman\nNumeral\t\tDecimal\n" );
/* loop 100 vezes */
for ( loop = 1; loop
div = loop / 10; /* dígitos das dezenas separados */
mod = loop % 10;
/* dígitos separados */
/* estrutura de troca para dígito das dezenas */
switch ( div ) {
/* imprime o numeral romano apropriado para o dígito das dezenas */
case 0:
break;
case 1:
printf( "X" );
break; /* exit switch */
case 2:
printf( "XX" );
break; /* exit switch */
case 3:
printf( "XXX" );
break; /* exit switch */
case 4:
printf( "XL" );
break; /* exit switch */
case 5:
printf( "L" );
break; /* exit switch */
case 6:
printf( "LX" );
break; /* exit switch */
case 7:
printf( "LXX" );
break; /* exit switch */
case 8:
printf( "LXXX" );
break; /* exit switch */
case 9:
printf( "XC" );
break; /* exit switch */
case 10:
printf( "C" );
break; /* exit switch */
default:
break; /* exit switch */
} /* end switch */
/* estrutura de troca para um dígito */
switch( mod ) {
/* imprime o numeral romano apropriado para um dígito */
case 0:
printf( "\t\t%4d\n", div * 10 );
break; /* exit switch */
case 1:
printf( "I\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 2:
printf( "II\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 3:
printf( "III\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 4:
printf( "IV\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 5:
printf( "V\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 6:
printf( "VI\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 7:
printf( "VII\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 8:
printf( "VIII\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 9:
printf( "IX\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
case 10:
printf( "X\t\t%4d\n", div * 10 + mod );
break; /* exit switch */
default:
break; /* exit switch */
} /* end switch */
} /* end for */
return 0;
} /* end main */