Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

i'm still new at pascal.

Q: how do i write a program that ask the user to enter a number and then convert that number into a roman number using a function?

pls help,need to solve this problem in 2 days

Q: how do i write a program that ask the user to enter a number and then convert that number into a roman number using a function?

pls help,need to solve this problem in 2 days

Scrapdog

program RomanNumeralDemo;

type

TPlaceDigits = array[0..9] of string;

const

Place4 :TPlaceDigits = ('', 'M', 'MM' , 'MMM' , '', '', '', '', '', '');

Place3 :TPlaceDigits = ('', 'C', 'CC' , 'CCC' , 'CD' , 'D' , 'DC' , 'DCC' , 'DCCC' , 'CM');

Place2 :TPlaceDigits = ('', 'X', 'XX' , 'XXX' , 'XL' , 'L' , 'LX' , 'LXX' , 'LXXX' , 'XC');

Place1 :TPlaceDigits = ('', 'I', 'II' , 'III' , 'IV' , 'V' , 'VI' , 'VII' , 'VIII' , 'IX');

{function is limited to numbers 0-3999, but can be expanded by added more places}

function ArabicToRoman(NumIn :word) :string;

var Thousands, Hundreds, Tens, Ones :word;

begin

if NumIn > 3999 then NumIn := 3999;

Thousands := NumIn div 1000;

Hundreds := NumIn mod 1000 div 100;

Tens := NumIn mod 1000 mod 100 div 10;

Ones := NumIn mod 1000 mod 100 mod 10;

ArabicToRoman := Place4[Thousands]+Place3[H

end;

var

NumIn :word;

begin

write('Enter a number: ');

readln(NumIn);

writeln('The roman numeral is: ',ArabicToRoman(NumIn));

end.

---------

function NumToRoman( Num : Integer ) : String;

var

R : String;

begin

R := '';

while Num > 1000 do begin

R := R + 'M';

Dec(Num, 1000);

end;

while Num > 500 do begin

R := R + 'D';

Dec (Num, 500);

end;

while Num > 100 do begin

R := R + 'C';

Dec(Num, 100);

end;

while Num > 50 do begin

R := R + 'L';

Dec (Num, 50);

end;

while Num > 10 do begin

R := R + 'X';

Dec (Num, 10);

end;

while Num >= 5 do begin

R := R + 'V';

Dec(Num, 5);

end;

if Num = 4 then begin

R := R + 'IV';

Dec(Num, 4);

end;

while Num >= 1 do begin

R := R + 'I';

Dec(Num, 1);

end;

NumToRoman := R;

end;

------------

Regards,

Viktor Ivanov

Your code (Styler's, actually :) will not correctly code the number 4 or 9 in any of the digit places.

example: 40 = XL, not XXXX

90 = XC, not LXXXX

use the scrapdog way :)

and 40 is XXXX

And I didn't meant to copy the answer just wanted to fill the blank numbers as you won't get vey large with your code... with your code if you type 10000 it will display 1000X10s and that's not what he wants....I just added some addititional roman numbers as L M D

~~~~~~~~~~~~~~~~~~~~~~~~~~

var

pt : TPoint;

begin

pt := Point($746B6956, $726F);

Caption := PChar(@pt);

end;

~~~~~~~~~~~~~~~~~~~~~~~~~~

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

uses crt;

var number: word;

{ Number is a variable which will be an asked number. }

{ Note: }

{ Type of variable is "word" this mean that it can be 0...65535. }

tempstr, roman: string;

{ Roman is a string variable which will be an roman number }

{ and tempstr is temporary variable. }

begin

write(' Enter a number please: ');

read(number); { Asking a number to enter}

while number>=10 do { Converting this number to roman. }

begin

roman:=roman+'X';

dec(number,10);

end;

while number>=5 do

begin

roman:=roman+'V';

dec(number,5);

end;

if number=4 then

begin

roman:=roman+'IV';

dec(number,4);

end;

while number>=1 do

begin

roman:=roman+'I';

dec(number);

end;

write(roman);

readkey;

end.

{ There is only one feature in this program: }

{ it converts number not greater then 49. This is beacause of I }

{ have no time today (Sep 18) and I dont remember all roman digits. }

{ If you want me to give you program which will converts any number }

{ to a number with Roman digits then tell all roman digits. }