Monday, September 26, 2016

Roman Numeral To Decimal in PERL

A simple program that I wrote using PERL as my programming language that will ask the user to give roman numeral value and then our program will convert the given roman numeral value into it's decimal equivalent in PERL.

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

our @EXPORT = qw(isroman arabic Roman roman);

our %roman2arabic = qw(I 1 V 5 X 10 L 50 C 100 D 500 M 1000);

starting();

sub isroman($) {
    my $arg = shift;
    $arg ne '' and
      $arg =~ /^(?: M{0,3})
                (?: D?C{0,3} | C[DM])
                (?: L?X{0,3} | X[LC])
                (?: V?I{0,3} | I[VX])$/ix;
}

sub arabic($) {
    my $arg = shift;
    isroman $arg or return undef;
    my($last_digit) = 1000;
    my($arabic);
    foreach (split(//, uc $arg)) {
        my($digit) = $roman2arabic{$_};
        $arabic -= 2 * $last_digit if $last_digit < $digit;
        $arabic += ($last_digit = $digit);
    }
    $arabic;
}
sub starting {
        print "\n\n";
        print "\t Roman Numeral To Decimal in PERL.";
        print "\n\n";
        print "Enter a Roman Numeral : ";
        chomp($a=<>);
        print "\n\n";
        print "The roman numeral $a equivalent is ";
        print uc(arabic($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