' Roman routine for PowerBASIC ' Copyright (c) 1993,94 by Dave Navarro, Jr. ' DECLARE: FUNCTION Roman$(BYVAL integer) ' DESC: Convert a number between 1 and 3999 to a roman numeral. ' EXAMP: CopyRight$ = "(c) " + Roman$(1993) DEFINT A-Z 'Required for all numeric functions, forces PB to not 'include floating point in UNIT (makes it smaller) FUNCTION Roman$(BYVAL Number) PUBLIC LOCAL RomanChar$, RomanCharSub$, I STATIC Rv(), Rv1(), Flag RomanChar$ = "MDCLXVI" RomanCharSub$ = "CCXXII?" IF Flag = 0 THEN DIM Rv(1:7), Rv1(1:7) Rv(1)=1000 :Rv(2)=500 :Rv(3)=100 :Rv(4)=50 :Rv(5)=10 :Rv(6)=5 Rv(7)=1:Rv1(1)=900 :Rv1(2)=400 :Rv1(3)=90 :Rv1(4)=40 :Rv1(5)=9 Rv1(6)=4 :Rv1(7)=1 Flag = -1 END IF IF Number < 4000 THEN FOR I = 1 TO 7 WHILE Number >= Rv(I) Temp$ = Temp$ + MID$(RomanChar$,I,1) Number = Number - Rv(I) WEND IF Number >= Rv1(I) THEN Temp$ = Temp$ + MID$(RomanCharSub$,I,1) Temp$ = Temp$ + MID$(RomanChar$,I,1) Number = Number - Rv1(I) END IF NEXT I END IF Roman$ = Temp$ END FUNCTION