CS 1713 Introduction to Computer Programming II Assignment 2

$30.00

Category: Tags: , , , , You will Instantly receive a download link for .zip solution file upon Payment || To Order Original Work Click Custom Order?

Description

5/5 - (5 votes)

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.