|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1248 (0x4e0) Types: TextFile Notes: Mikados TextFile, Mikados_K Names: »SUM_BRØ2«
└─⟦92e6f589c⟧ Bits:30003895/4xCOMAL3b.imd 4 * COMAL - SPC/1 - Disketter til bogen └─⟦this⟧ »SUM_BRØ2« └─⟦faca42ef2⟧ Bits:30003895/4xCOMAL1.imd 4 * COMAL - SPC/1 - Disketter til bogen └─⟦this⟧ »SUM_BRØ2«
0010 // -------------------- sum_brøk_2 ----------------------- 0015 INTEGER DIVIDEND1,DIVIDEND2,DIVISOR1,DIVISOR2,DIVIDEND,DIVISOR 0020 // 0030 PROC FNSFD(N,M) 0040 WHILE M>0 DO 0050 REST:=N MOD M 0060 N:=M;M:=REST 0070 ENDWHILE 0080 FNSFD:=N 0090 ENDPROC FNSFD 0100 // 0110 PROC FORKORT(REF TÆLLER,REF NÆVNER) 0120 FAKTOR:=FNSFD(TÆLLER,NÆVNER) 0130 TÆLLER:=TÆLLER/FAKTOR 0140 NÆVNER:=NÆVNER/FAKTOR 0150 ENDPROC FORKORT 0160 // 0170 CLEAR 0175 PRINT 0180 INPUT "Indtast første brøks tæller og nævner: ":DIVIDEND1,DIVISOR1 0190 INPUT "Indtast anden brøks tæller og nævner: ":DIVIDEND2,DIVISOR2 0200 PRINT 0210 PRINT "(";DIVIDEND1;")/(";DIVISOR1;") + ("; 0220 PRINT DIVIDEND2;")/(";DIVISOR2;") = "; 0230 DIVIDEND:=DIVIDEND1*DIVISOR2+DIVIDEND2*DIVISOR1 0240 DIVISOR:=DIVISOR1*DIVISOR2 0250 FORTEGN:=SGN(DIVIDEND*DIVISOR) 0260 DIVIDEND:=ABS(DIVIDEND) 0270 DIVISOR:=ABS(DIVISOR) 0280 EXEC FORKORT(DIVIDEND,DIVISOR) 0290 // 0300 IF FORTEGN=0 THEN PRINT 0 0310 IF FORTEGN=-1 THEN PRINT "-"; 0320 IF FORTEGN<>0 THEN 0330 IF DIVISOR=1 THEN 0340 PRINT DIVIDEND 0350 ELSE 0360 PRINT DIVIDEND;"/";DIVISOR 0370 ENDIF 0380 ENDIF
?0010 // -------------------- sum_brøk_2 -----------------------?C0015 INTEGER DIVIDEND1,DIVIDEND2,DIVISOR1,DIVISOR2,DIVIDEND,DIVISORC▶08◀0020 // ▶08◀▶14◀0030 PROC FNSFD(N,M)▶14◀▶12◀0040 WHILE M>0 DO ▶12◀▶12◀0050 REST:=N MOD M▶12◀▶11◀0060 N:=M;M:=REST▶11◀▶0e◀0070 ENDWHILE ▶0e◀\r0080 FNSFD:=N\r▶12◀0090 ENDPROC FNSFD▶12◀▶08◀0100 // ▶08◀(0110 PROC FORKORT(REF TÆLLER,REF NÆVNER)(!0120 FAKTOR:=FNSFD(TÆLLER,NÆVNER)!▶1a◀0130 TÆLLER:=TÆLLER/FAKTOR▶1a◀▶1a◀0140 NÆVNER:=NÆVNER/FAKTOR▶1a◀▶14◀0150 ENDPROC FORKORT▶14◀▶08◀0160 // ▶08◀▶0b◀0170 CLEAR ▶0b◀▶0b◀0175 PRINT ▶0b◀H0180 INPUT "Indtast første brøks tæller og nævner: ":DIVIDEND1,DIVISOR1HH0190 INPUT "Indtast anden brøks tæller og nævner: ":DIVIDEND2,DIVISOR2H▶0b◀0200 PRINT ▶0b◀00210 PRINT "(";DIVIDEND1;")/(";DIVISOR1;") + (";0+0220 PRINT DIVIDEND2;")/(";DIVISOR2;") = ";+40230 DIVIDEND:=DIVIDEND1*DIVISOR2+DIVIDEND2*DIVISOR14▶1f◀0240 DIVISOR:=DIVISOR1*DIVISOR2▶1f◀#0250 FORTEGN:=SGN(DIVIDEND*DIVISOR)#▶1c◀0260 DIVIDEND:=ABS(DIVIDEND)▶1c◀▶1a◀0270 DIVISOR:=ABS(DIVISOR)▶1a◀#0280 EXEC FORKORT(DIVIDEND,DIVISOR)#▶08◀0290 // ▶08◀▶1e◀0300 IF FORTEGN=0 THEN PRINT 0▶1e◀"0310 IF FORTEGN=-1 THEN PRINT "-";"▶18◀0320 IF FORTEGN<>0 THEN ▶18◀▶17◀0330 IF DIVISOR=1 THEN ▶17◀▶13◀0340 PRINT DIVIDEND▶13◀ 0350 ELSE ▶1f◀0360 PRINT DIVIDEND;"/";DIVISOR▶1f◀▶0b◀0370 ENDIF ▶0b◀▶0b◀0380 ENDIF ▶0b◀▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc