A simple program that I wrote using PERL as my programming language that will ask the user to give decimal value and then our program will convert the given decimal value into roman numeral equivalent in PERL.
Add me at Facebook my address is jakerpomperada@gmail.com and jakerpomperada@yahoo.com.
Add me at Facebook my address is jakerpomperada@gmail.com and jakerpomperada@yahoo.com.
My mobile number here in the Philippines is 09173084360.
Program Listing
#!D:\xampp\perl\bin
my %roman_digit = qw(1 IV 10 XL 100 CD 1000 MMMMMM);
my @figure = reverse sort keys %roman_digit;
$roman_digit{$_} = [split(//, $roman_digit{$_}, 2)] foreach @figure;
starting();
sub Roman($) {
my $arg = shift;
0 < $arg and $arg < 4000 or return undef;
my($x, $roman);
foreach (@figure) {
my($digit, $i, $v) = (int($arg / $_), @{$roman_digit{$_}});
if (1 <= $digit and $digit <= 3) {
$roman .= $i x $digit;
} elsif ($digit == 4) {
$roman .= "$i$v";
} elsif ($digit == 5) {
$roman .= $v;
} elsif (6 <= $digit and $digit <= 8) {
$roman .= $v . $i x ($digit - 5);
} elsif ($digit == 9) {
$roman .= "$i$x";
}
$arg -= $digit * $_;
$x = $i;
}
$roman;
}
sub roman($) {
lc Roman shift;
}
sub starting {
print "\n\n";
print "\t Decimal To Roman Numeral in PERL.";
print "\n\n";
print "Enter a number : ";
chomp($a=<>);
print "\n\n";
print "The number $a it's roman numeral equivalent is ";
print uc(roman($a));
print ".";
print "\n\n";
print "Do you want to continue (Y or N) ? : ";
chomp($choice=<>);
if( $choice eq "y") {
goto &starting;
} else {
print "\n\n";
print "\t End of Program";
print "\n";
exit;
}
}
No comments:
Post a Comment