CS 1713

Introduction to Computer Programming II

Assignment 2

1. (100 pts) Write a program to produce a table of decimal numbers and roman numerals from

1 to 1000. The romans used a special method of showing numbers based on the following

symbols I,V,X,L,C,D and M representing 1,5,10,50,100,500 and 1000 respectively.

There are a few rules for roman numerals

(a) To write a roman numeral each of the nonzero digits should be treated separately. For

example, to write 651=500+100+50+1, D=500,C=100,L=50,I=1, we have DCLI.

(b) The symbols I,X,C and M (symbols representing powers of 10) can be repeated at most

3 times in succession. D, L and V (symbols not representing powers of 10) can never be

repeated.

(c) I can be subtracted from V and X only. X can be subtracted from L and C only. C

can be subtracted from D and M only. In other words, symbol representing 10x

can

be subtracted from symbol representing 5 ∗ 10x and 10 ∗ 10x

. V, L and D can never

be subtracted. In other words, symbols not representing powers of 10 can never be

subtracted.

Your program should produce a table of decimal numbers and corresponding roman numerals.

As a starting point find how a decimal number can be represented using numbers which has a

roman equivalent. Given a decimal number n find the values of a, b, c, d, e, f, g which satisfies

n = a ∗ 1000 + b ∗ 500 + c ∗ 100 + d ∗ 50 + e ∗ 10 + f ∗ 5 + g ∗ 1

This will give you a roman numeral representation which will be correct in most cases. For

example, 752 = 500 + 2 ∗ 100 + 50 + 2 ∗ 1 can be converted into DCCLII. Since we have

2*100 C repeats and since we have 2*1, I repeats. After that you can take care of the special

cases where a symbol appears 4 or more times or a nonrepeating symbol appears two or more

times. Your final program will have several if-else statements.

Sample output for this assignment is as follows

1 I

2 II

3 III

4 IV

5 V

6 VI

7 VII

8 VIII

.

.

.

1000 M

Name your program assign2.c and leave a single space between a decimal number and the

roman numeral. You can save your output to a file using redirection. You can compare 2 files

using linux command diff as shown below to see which lines differ.

fox01> diff romans1.txt romans2.txt

Submit your program electronically using the blackboard system

The program you submit should be your own work. Cheating will be reported to office of academic

integrity. Both the copier and copiee will be held responsible.

## Reviews

There are no reviews yet.