_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

ROMCIJF

FILE INFORMATION

FILENAME(S): ROMCIJF

FILE TYPE(S): SEQ

FILE SIZE: 939b

FIRST SEEN: 2025-11-30 21:29:04

APPEARS ON: 1 disk(s)

FILE HASH

a849cca5c2f06010ff2029a46d7023f7024c8ecddba559bd890f97738e0224a7

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TIGA ROMCIJF SEQ DuncanTwain 3 16 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 70 72 6F 67 72 61 6D 20  72 6F 6D 63 69 6A 66 3B  |program romcijf;|
00000010: 0D 54 59 50 45 0D 20 20  20 72 6F 6D 74 79 70 65  |.TYPE.   romtype|
00000020: 20 3D 20 53 54 52 49 4E  47 5B 34 30 5D 3B 0D 56  | = STRING[40];.V|
00000030: 41 52 0D 20 20 20 67 65  74 61 6C 3A 20 69 6E 74  |AR.   getal: int|
00000040: 65 67 65 72 3B 0D 20 20  20 72 6F 6D 63 69 6A 66  |eger;.   romcijf|
00000050: 3A 20 72 6F 6D 74 79 70  65 3B 0D 42 45 47 49 4E  |: romtype;.BEGIN|
00000060: 3B 0D 50 52 4F 43 45 44  55 52 45 20 72 6F 6D 65  |;.PROCEDURE rome|
00000070: 69 6E 63 69 6A 66 28 56  41 52 20 67 65 74 61 6C  |incijf(VAR getal|
00000080: 3A 20 69 6E 74 65 67 65  72 3B 20 76 61 72 20 72  |: integer; var r|
00000090: 6F 6D 63 69 6A 66 3A 20  72 6F 6D 74 79 70 65 29  |omcijf: romtype)|
000000A0: 3B 0D 43 4F 4E 53 54 3B  0D 20 20 20 77 3A 20 41  |;.CONST;.   w: A|
000000B0: 52 52 41 59 5B 31 2E 2E  37 5D 20 6F 66 20 69 6E  |RRAY[1..7] of in|
000000C0: 74 65 67 65 72 3D 28 31  30 30 30 2C 20 35 30 30  |teger=(1000, 500|
000000D0: 2C 20 31 30 30 2C 20 35  30 2C 20 31 30 2C 20 35  |, 100, 50, 10, 5|
000000E0: 2C 20 31 29 3B 0D 20 20  63 68 61 3A 20 41 52 52  |, 1);.  cha: ARR|
000000F0: 41 59 5B 31 2E 2E 37 5D  20 6F 66 20 63 68 61 72  |AY[1..7] of char|
00000100: 3D 20 27 4D 44 43 4C 58  56 49 27 3B 0D 56 41 52  |= 'MDCLXVI';.VAR|
00000110: 3B 0D 20 20 6D 2C 20 6E  2C 20 78 3A 20 69 6E 74  |;.  m, n, x: int|
00000120: 65 67 65 72 3B 0D 42 45  47 49 4E 3B 0D 20 20 20  |eger;.BEGIN;.   |
00000130: 78 3A 3D 20 67 65 74 61  6C 3B 20 6D 3A 3D 20 31  |x:= getal; m:= 1|
00000140: 3B 0D 20 20 20 57 48 49  4C 45 20 78 3E 30 20 64  |;.   WHILE x>0 d|
00000150: 6F 3B 0D 20 20 20 42 45  47 49 4E 3B 0D 20 20 20  |o;.   BEGIN;.   |
00000160: 20 20 20 49 46 20 78 2D  77 28 6D 29 3C 30 20 54  |   IF x-w(m)<0 T|
00000170: 48 45 4E 3B 0D 20 20 20  20 20 20 42 45 47 49 4E  |HEN;.      BEGIN|
00000180: 3A 0D 20 20 20 20 20 20  20 20 6E 3A 3D 37 3B 0D  |:.        n:=7;.|
00000190: 20 20 20 20 20 20 20 20  57 48 49 4C 45 20 6E 3E  |        WHILE n>|
000001A0: 3D 28 32 2A 28 28 6D 2B  31 29 20 64 69 76 20 32  |=(2*((m+1) div 2|
000001B0: 29 2B 31 29 20 64 6F 3B  0D 20 20 20 20 20 20 20  |)+1) do;.       |
000001C0: 20 42 45 47 49 4E 3B 0D  20 20 20 20 20 20 20 20  | BEGIN;.        |
000001D0: 20 20 49 46 20 78 2D 77  5B 6D 5D 2B 77 5B 6E 5D  |  IF x-w[m]+w[n]|
000001E0: 3E 3D 30 20 54 48 45 4E  0D 20 20 20 20 20 20 20  |>=0 THEN.       |
000001F0: 20 20 20 42 45 47 49 4E  0D 20 20 20 20 20 20 20  |   BEGIN.       |
00000200: 20 20 20 20 20 78 3A 3D  20 78 2D 77 5B 6D 5D 2B  |     x:= x-w[m]+|
00000210: 77 5B 6E 5D 3B 0D 20 20  20 20 20 20 20 20 20 20  |w[n];.          |
00000220: 20 20 72 6F 6D 63 69 6A  66 3A 3D 20 72 6F 6D 63  |  romcijf:= romc|
00000230: 69 6A 66 2B 20 63 68 61  5B 6E 5D 20 2B 63 68 61  |ijf+ cha[n] +cha|
00000240: 5B 6D 5D 3B 0D 20 20 20  20 20 20 20 20 20 20 45  |[m];.          E|
00000250: 4E 44 3B 0D 20 20 20 20  20 20 20 20 20 20 6E 3A  |ND;.          n:|
00000260: 3D 20 6E 2D 32 0D 20 20  20 20 20 20 20 20 45 6E  |= n-2.        En|
00000270: 64 3B 0D 20 20 20 20 20  20 20 20 6D 3A 3D 20 6D  |d;.        m:= m|
00000280: 2B 31 0D 20 20 20 20 20  20 45 4E 44 3B 0D 20 20  |+1.      END;.  |
00000290: 20 20 20 20 45 4C 53 45  3B 0D 20 20 20 20 20 20  |    ELSE;.      |
000002A0: 42 45 47 49 4E 3B 0D 20  20 20 20 20 20 20 20 20  |BEGIN;.         |
000002B0: 78 3A 3D 20 78 2D 77 5B  6D 5D 3B 20 72 6F 6D 63  |x:= x-w[m]; romc|
000002C0: 69 6A 66 3A 3D 20 72 6F  6D 63 69 6A 66 20 2B 63  |ijf:= romcijf +c|
000002D0: 68 61 5B 6D 5D 3B 0D 20  20 20 20 20 20 45 4E 44  |ha[m];.      END|
000002E0: 3B 0D 20 20 20 20 45 4E  44 3B 0D 45 4E 44 3B 0D  |;.    END;.END;.|
000002F0: 3A 0D 42 45 47 49 4E 0D  52 45 50 45 41 54 3B 0D  |:.BEGIN.REPEAT;.|
00000300: 72 6F 6D 63 69 6A 66 3A  3D 20 27 27 3B 0D 57 52  |romcijf:= '';.WR|
00000310: 49 54 45 20 28 27 56 6F  65 72 20 67 65 68 65 65  |ITE ('Voer gehee|
00000320: 6C 20 67 65 74 61 6C 20  69 6E 20 28 74 6F 74 20  |l getal in (tot |
00000330: 34 30 30 30 29 27 29 3B  0D 52 45 41 44 28 67 65  |4000)');.READ(ge|
00000340: 74 61 6C 29 3B 20 57 52  49 54 45 4C 4E 3B 0D 72  |tal); WRITELN;.r|
00000350: 6F 6D 65 69 6E 63 69 6A  66 20 28 67 65 74 61 6C  |omeincijf (getal|
00000360: 2C 20 72 6F 6D 63 69 6A  66 29 3B 0D 57 52 49 54  |, romcijf);.WRIT|
00000370: 45 4C 4E 28 67 65 74 61  6C 2C 27 20 20 3D 20 20  |ELN(getal,'  =  |
00000380: 27 2C 72 6F 6D 63 69 6A  66 29 3B 20 57 52 49 54  |',romcijf); WRIT|
00000390: 45 4C 4E 3B 0D 55 4E 54  49 4C 20 67 65 74 61 6C  |ELN;.UNTIL getal|
000003A0: 3D 20 32 37 3B 0D 45 4E  44 2E 0D                 |= 27;.END..     |
PROGRAM ROMCIJF;.TYPE.   ROMTYPE = STRIN
G[40];.VAR.   GETAL: INTEGER;.   ROMCIJF
: ROMTYPE;.BEGIN;.PROCEDURE ROMEINCIJF(V
AR GETAL: INTEGER; VAR ROMCIJF: ROMTYPE)
;.CONST;.   W: ARRAY[1..7] OF INTEGER=(1
000, 500, 100, 50, 10, 5, 1);.  CHA: ARR
AY[1..7] OF CHAR= 'MDCLXVI';.VAR;.  M, N
, X: INTEGER;.BEGIN;.   X:= GETAL; M:= 1
;.   WHILE X>0 DO;.   BEGIN;.      IF X-
W(M)<0 THEN;.      BEGIN:.        N:=7;.
        WHILE N>=(2*((M+1) DIV 2)+1) DO;
.        BEGIN;.          IF X-W[M]+W[N]
>=0 THEN.          BEGIN.            X:=
 X-W[M]+W[N];.            ROMCIJF:= ROMC
IJF+ CHA[N] +CHA[M];.          END;.    
      N:= N-2.        END;.        M:= M
+1.      END;.      ELSE;.      BEGIN;. 
        X:= X-W[M]; ROMCIJF:= ROMCIJF +C
HA[M];.      END;.    END;.END;.:.BEGIN.
REPEAT;.ROMCIJF:= '';.WRITE ('VOER GEHEE
L GETAL IN (TOT 4000)');.READ(GETAL); WR
ITELN;.ROMEINCIJF (GETAL, ROMCIJF);.WRIT
ELN(GETAL,'  =  ',ROMCIJF); WRITELN;.UNT
IL GETAL= 27;.END..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL