Showcase CTCWeb Consortium CTCWeb Home

AbleMedia salutes Lee K. Seitz


Lee's Roman Numeral Converter
by Lee K. Seitz


Code Explanation

I began getting requests from students for the source code to my Arabic to Roman numeral converter not too long after I put it on the Internet. I'm a firm believer in students doing their own work, so I will not give the source to anyone. (Besides, it's written in Perl, which allows me to do some things not easily done in C.) It has nothing to do with planning on making money from such a simple algorithm. Although I won't give out the source, here's a brief and purposely vague explanation of how it works:

I start with an array of the Roman numeral "digits". (Perl is great for manipulating text by breaking each character of a string into an array and such.) Then I determine the length of the input (decimal) number. This tells me where in the array to set my pointers for ones, fives, and tens. After this is set up, I just iterate through each digit with a big if-else statement (Perl doesn't have a case statement.) for each digit 1-9 (zeroes are meaningless in Roman numerals), building my string.

Here's an exmple of the steps for "14":

length(Input) = 2, so One="X", Five="L", Ten="C"

if (1 == Input) . . . yep!

String = String + One

Remaining digits in Input, so now One="I", Five="V", Ten="X"

if (1 == Input) . . . nope!

else if (2 == Input) . . . nope!

else if (3 == Input) . . . nope!

else if (4 == Input) . . . yep!

String = String + One + Five

No more digits in Input, return String ("XIV")

Since I wrote the converter, I've come up with a slightly better way of doing it involving two arrays of Roman numeral "digits" instead of one. This is left as an exercise for the reader. Also, a friend of mine independently came up with something better than nine else/if statements. This, also, is left as an excercise for the reader.

 

Return to Lee's Roman Numeral Converter

Inside Connection

Complementary Resources

CTCWeb Resources
Unearthing the Lost City of ABurbe-Suburbe

Sport & Daily Life in the Roman World

Roots of English: an Etymological Dictionary

Knowledge Builders
Dress & Costume, Hera and more.

Teachers' Companions
Hera, Dress & Costume and more.

Other Resources
Roman Numerals 101

Arithmetic with Roman Numerals

Table of Roman Numerals

Global Glossary Terms
- Caesar
- demonination
- censor
- alphabet

© 1998-2000 AbleMedia.
All rights reserved.




Quick Start | Knowledge Builders | Teachers' Companions | Curriculum Guides | Netshots


Consortium | Showcase | Glossary | My Word! | My Year! | Honor Roll | Chi Files

Chalice Awards | Awards & Praise | Home | Site Map | Contact Us | About AbleMedia

Rules & Regulations of this Site

© 1998-2000 AbleMedia. All rights reserved.
Sponsored by AbleMedia.
ctcweb@ablemedia.com