|
|
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 - download
Length: 5056 (0x13c0)
Types: TextFile
Notes: Mikados_K
Names: »REGNEOPG.K«
└─⟦92e6f589c⟧ Bits:30003895/4xCOMAL3b.imd 4 * COMAL - SPC/1 - Disketter til bogen
└─⟦this⟧ »REGNEOPG.K«
└─⟦faca42ef2⟧ Bits:30003895/4xCOMAL1.imd 4 * COMAL - SPC/1 - Disketter til bogen
└─⟦this⟧ »REGNEOPG.K«
0010 // ----------------------- regneopgave ---------------------------- 0020 RNDSEED:=4.342324 0030 // 0040 PROC SFD(PRN,PRM) 0050 WHILE PRM>0 DO 0060 REST:=PRN MOD PRM 0070 PRN:=PRM;PRM:=REST 0080 ENDWHILE 0090 SFD:=PRN 0100 ENDPROC SFD 0110 // 0120 PROC FORKORT(REF PRTÆLLER,REF PRNÆVNER) 0130 FAKTOR:=SFD(PRTÆLLER,PRNÆVNER) 0140 PRTÆLLER:=PRTÆLLER/FAKTOR 0150 PRNÆVNER:=PRNÆVNER/FAKTOR 0160 ENDPROC FORKORT 0170 // 0180 DIM NAVN$ OF 30,SVAR$ OF 1 0190 CLEAR 0194 INTEGER DIVIDEND1,DIVISOR1,DIVIDEND2,DIVISOR2,DIVIDEND,DIVISOR 0195 INTEGER TRUE,FALSE,FEJL,RIGTIG,ANTAL,GRAD 0196 FALSE:=0;TRUE:=1 0200 // RANDOM 0210 INPUT "Indtast dit navn: ":NAVN$ 0220 PRINT 0230 INPUT "Sværhedsgrad (1-100): ":GRAD 0240 PRINT 0250 PRINT "Velkommmen ";NAVN$;", du får nu stillet 5 opgaver:" 0260 CURSOR 65,22 0270 INPUT "Tast return:":SVAR$ 0280 ANTAL:=0;RIGTIG:=0;FEJL:=FALSE 0290 REPEAT 0300 CLEAR 0310 CURSOR 1,3 0320 ANTAL:=ANTAL+1 0330 DIVIDEND1:=RND(1,GRAD) 0335 DIVIDEND2:=RND(1,GRAD) 0340 DIVISOR1:=RND(1,GRAD) 0345 DIVISOR2:=RND(1,GRAD) 0350 PRINT 0360 PRINT DIVIDEND1;"/ ";DIVISOR1;" + ";DIVIDEND2;"/ ";DIVISOR2;" = ? " 0370 PRINT 0380 DIVIDEND:=DIVIDEND1*DIVISOR2+DIVIDEND2*DIVISOR1 0390 DIVISOR:=DIVISOR1*DIVISOR2 0400 EXEC FORKORT(DIVIDEND,DIVISOR) 0410 FORSØG:=0 0420 REPEAT 0430 FORSØG:=FORSØG+1 0440 INPUT "Indtast tæller: ":TÆLLER 0450 PRINT 0460 INPUT "Indtast nævner: ":NÆVNER 0470 PRINT 0480 PRINT 0490 IF DIVIDEND=TÆLLER AND DIVISOR=NÆVNER THEN 0500 PRINT "Svaret er korrekt" 0510 RIGTIG:=RIGTIG+1 0520 ELSE 0530 FEJL:=TRUE 0540 IF FORSØG<3 THEN 0550 PRINT "Svaret er ukorrekt - prøv igen: " 0560 ELSE 0570 PRINT "Nej, det korrekte svar er ";DIVIDEND;"/ ";DIVISOR 0580 ENDIF 0590 ENDIF 0600 UNTIL FORSØG=3 OR (DIVIDEND=TÆLLER AND DIVISOR=NÆVNER) 0610 CURSOR 65,22 0620 INPUT "Tast return:":SVAR$ 0630 UNTIL ANTAL=5 0640 PRINT 0650 CASE RIGTIG OF 0660 WHEN 0 0670 PRINT "Ikke et eneste rigtigt svar! Jamen ";NAVN$;" dog!" 0680 WHEN 1 0690 PRINT "Kun 1 rigtigt svar - elendigt ";NAVN$ 0700 WHEN 2 0710 PRINT "Kun 2 rigtige svar - det er ikke strålende ";NAVN$ 0720 WHEN 3 0730 PRINT "3 rigtige svar - det kunne være bedre ";NAVN$ 0740 WHEN 4 0750 PRINT "Kun et forkert svar - ikke værst ";NAVN$ 0760 WHEN 5 0770 IF FEJL=TRUE THEN 0780 PRINT "Godt ";NAVN$;", 5 rigtige svar - "; 0790 PRINT "omend ikke alle i første forsøg." 0800 ELSE 0810 PRINT "Perfekt ";NAVN$ 0820 ENDIF 0830 ENDCASE 0900 0910 PROC RND(LOW,HIGH) 0920 RNDX:=RNDSEED+3.14159 0930 RNDX:=EXP(5.0*LN(RNDX)) 0940 RNDSEED:=RNDX-INT(RNDX) 0950 RND:=INT((RNDSEED*(HIGH-LOW)+LOW)+0.5) 0960 ENDPROC RND 0359 // ke alle i første forsøg."
0x0000…004a Line {l1=0x48, l2=»0010 // ----------------------- regneopgave ----------------------------«, l3=0x48}
0x004a…0062 Line {l1=0x16, l2=»0020 RNDSEED:=4.342324«, l3=0x16}
0x0062…006c Line {l1=0x08, l2=»0030 // «, l3=0x08}
0x006c…0084 Line {l1=0x16, l2=»0040 PROC SFD(PRN,PRM)«, l3=0x16}
0x0084…009a Line {l1=0x14, l2=»0050 WHILE PRM>0 DO «, l3=0x14}
0x009a…00b2 Line {l1=0x16, l2=»0060 REST:=PRN MOD PRM«, l3=0x16}
0x00b2…00cb Line {l1=0x17, l2=»0070 PRN:=PRM;PRM:=REST«, l3=0x17}
0x00cb…00db Line {l1=0x0e, l2=»0080 ENDWHILE «, l3=0x0e}
0x00db…00ea Line {l1=0x0d, l2=»0090 SFD:=PRN«, l3=0x0d}
0x00ea…00fc Line {l1=0x10, l2=»0100 ENDPROC SFD«, l3=0x10}
0x00fc…0106 Line {l1=0x08, l2=»0110 // «, l3=0x08}
0x0106…0134 Line {l1=0x2c, l2=»0120 PROC FORKORT(REF PRTÆLLER,REF PRNÆVNER)«, l3=0x2c}
0x0134…0159 Line {l1=0x23, l2=»0130 FAKTOR:=SFD(PRTÆLLER,PRNÆVNER)«, l3=0x23}
0x0159…0179 Line {l1=0x1e, l2=»0140 PRTÆLLER:=PRTÆLLER/FAKTOR«, l3=0x1e}
0x0179…0199 Line {l1=0x1e, l2=»0150 PRNÆVNER:=PRNÆVNER/FAKTOR«, l3=0x1e}
0x0199…01af Line {l1=0x14, l2=»0160 ENDPROC FORKORT«, l3=0x14}
0x01af…01b9 Line {l1=0x08, l2=»0170 // «, l3=0x08}
0x01b9…01da Line {l1=0x1f, l2=»0180 DIM NAVN$ OF 30,SVAR$ OF 1«, l3=0x1f}
0x01da…01e7 Line {l1=0x0b, l2=»0190 CLEAR «, l3=0x0b}
0x01e7…022c Line {l1=0x43, l2=»0194 INTEGER DIVIDEND1,DIVISOR1,DIVIDEND2,DIVISOR2,DIVIDEND,DIVISOR«, l3=0x43}
0x022c…025c Line {l1=0x2e, l2=»0195 INTEGER TRUE,FALSE,FEJL,RIGTIG,ANTAL,GRAD«, l3=0x2e}
0x025c…0273 Line {l1=0x15, l2=»0196 FALSE:=0;TRUE:=1«, l3=0x15}
0x0273…0283 Line {l1=0x0e, l2=»0200 // RANDOM«, l3=0x0e}
0x0283…02ad Line {l1=0x28, l2=»0210 INPUT "Indtast dit navn: ":NAVN$«, l3=0x28}
0x02ad…02ba Line {l1=0x0b, l2=»0220 PRINT «, l3=0x0b}
0x02ba…02e4 Line {l1=0x28, l2=»0230 INPUT "Sværhedsgrad (1-100): ":GRAD«, l3=0x28}
0x02e4…02f1 Line {l1=0x0b, l2=»0240 PRINT «, l3=0x0b}
0x02f1…0332 Line {l1=0x3f, l2=»0250 PRINT "Velkommmen ";NAVN$;", du får nu stillet 5 opgaver:"«, l3=0x3f}
0x0332…0345 Line {l1=0x11, l2=»0260 CURSOR 65,22«, l3=0x11}
0x0345…0366 Line {l1=0x1f, l2=»0270 INPUT "Tast return:":SVAR$«, l3=0x1f}
0x0366…038b Line {l1=0x23, l2=»0280 ANTAL:=0;RIGTIG:=0;FEJL:=FALSE«, l3=0x23}
0x038b…0399 Line {l1=0x0c, l2=»0290 REPEAT «, l3=0x0c}
0x0399…03a6 Line {l1=0x0b, l2=»0300 CLEAR «, l3=0x0b}
0x03a6…03b7 Line {l1=0x0f, l2=»0310 CURSOR 1,3«, l3=0x0f}
0x03b7…03cc Line {l1=0x13, l2=»0320 ANTAL:=ANTAL+1«, l3=0x13}
0x03cc…03e9 Line {l1=0x1b, l2=»0330 DIVIDEND1:=RND(1,GRAD)«, l3=0x1b}
0x03e9…0406 Line {l1=0x1b, l2=»0335 DIVIDEND2:=RND(1,GRAD)«, l3=0x1b}
0x0406…0422 Line {l1=0x1a, l2=»0340 DIVISOR1:=RND(1,GRAD)«, l3=0x1a}
0x0422…043e Line {l1=0x1a, l2=»0345 DIVISOR2:=RND(1,GRAD)«, l3=0x1a}
0x043e…044b Line {l1=0x0b, l2=»0350 PRINT «, l3=0x0b}
0x044b…0495 Line {l1=0x48, l2=»0360 PRINT DIVIDEND1;"/ ";DIVISOR1;" + ";DIVIDEND2;"/ ";DIVISOR2;" = ? "«, l3=0x48}
0x0495…04a2 Line {l1=0x0b, l2=»0370 PRINT «, l3=0x0b}
0x04a2…04d8 Line {l1=0x34, l2=»0380 DIVIDEND:=DIVIDEND1*DIVISOR2+DIVIDEND2*DIVISOR1«, l3=0x34}
0x04d8…04f9 Line {l1=0x1f, l2=»0390 DIVISOR:=DIVISOR1*DIVISOR2«, l3=0x1f}
0x04f9…051e Line {l1=0x23, l2=»0400 EXEC FORKORT(DIVIDEND,DIVISOR)«, l3=0x23}
0x051e…052e Line {l1=0x0e, l2=»0410 FORSØG:=0«, l3=0x0e}
0x052e…053c Line {l1=0x0c, l2=»0420 REPEAT «, l3=0x0c}
0x053c…0553 Line {l1=0x15, l2=»0430 FORSØG:=FORSØG+1«, l3=0x15}
0x0553…0579 Line {l1=0x24, l2=»0440 INPUT "Indtast tæller: ":TÆLLER«, l3=0x24}
0x0579…0586 Line {l1=0x0b, l2=»0450 PRINT «, l3=0x0b}
0x0586…05ac Line {l1=0x24, l2=»0460 INPUT "Indtast nævner: ":NÆVNER«, l3=0x24}
0x05ac…05b9 Line {l1=0x0b, l2=»0470 PRINT «, l3=0x0b}
0x05b9…05c6 Line {l1=0x0b, l2=»0480 PRINT «, l3=0x0b}
0x05c6…05f8 Line {l1=0x30, l2=»0490 IF DIVIDEND=TÆLLER AND DIVISOR=NÆVNER THEN «, l3=0x30}
0x05f8…0618 Line {l1=0x1e, l2=»0500 PRINT "Svaret er korrekt"«, l3=0x1e}
0x0618…062f Line {l1=0x15, l2=»0510 RIGTIG:=RIGTIG+1«, l3=0x15}
0x062f…063b Line {l1=0x0a, l2=»0520 ELSE «, l3=0x0a}
0x063b…064c Line {l1=0x0f, l2=»0530 FEJL:=TRUE«, l3=0x0f}
0x064c…0664 Line {l1=0x16, l2=»0540 IF FORSØG<3 THEN «, l3=0x16}
0x0664…0693 Line {l1=0x2d, l2=»0550 PRINT "Svaret er ukorrekt - prøv igen: "«, l3=0x2d}
0x0693…069f Line {l1=0x0a, l2=»0560 ELSE «, l3=0x0a}
0x069f…06de Line {l1=0x3d, l2=»0570 PRINT "Nej, det korrekte svar er ";DIVIDEND;"/ ";DIVISOR«, l3=0x3d}
0x06de…06eb Line {l1=0x0b, l2=»0580 ENDIF «, l3=0x0b}
0x06eb…06f8 Line {l1=0x0b, l2=»0590 ENDIF «, l3=0x0b}
0x06f8…0735 Line {l1=0x3b, l2=»0600 UNTIL FORSØG=3 OR (DIVIDEND=TÆLLER AND DIVISOR=NÆVNER)«, l3=0x3b}
0x0735…0748 Line {l1=0x11, l2=»0610 CURSOR 65,22«, l3=0x11}
0x0748…0769 Line {l1=0x1f, l2=»0620 INPUT "Tast return:":SVAR$«, l3=0x1f}
0x0769…077d Line {l1=0x12, l2=»0630 UNTIL ANTAL=5«, l3=0x12}
0x077d…078a Line {l1=0x0b, l2=»0640 PRINT «, l3=0x0b}
0x078a…07a0 Line {l1=0x14, l2=»0650 CASE RIGTIG OF «, l3=0x14}
0x07a0…07ad Line {l1=0x0b, l2=»0660 WHEN 0«, l3=0x0b}
0x07ad…07ed Line {l1=0x3e, l2=»0670 PRINT "Ikke et eneste rigtigt svar! Jamen ";NAVN$;" dog!"«, l3=0x3e}
0x07ed…07fa Line {l1=0x0b, l2=»0680 WHEN 1«, l3=0x0b}
0x07fa…082d Line {l1=0x31, l2=»0690 PRINT "Kun 1 rigtigt svar - elendigt ";NAVN$«, l3=0x31}
0x082d…083a Line {l1=0x0b, l2=»0700 WHEN 2«, l3=0x0b}
0x083a…087a Line {l1=0x3e, l2=»0710 PRINT "Kun 2 rigtige svar - det er ikke strålende ";NAVN$«, l3=0x3e}
0x087a…0887 Line {l1=0x0b, l2=»0720 WHEN 3«, l3=0x0b}
0x0887…08c2 Line {l1=0x39, l2=»0730 PRINT "3 rigtige svar - det kunne være bedre ";NAVN$«, l3=0x39}
0x08c2…08cf Line {l1=0x0b, l2=»0740 WHEN 4«, l3=0x0b}
0x08cf…0905 Line {l1=0x34, l2=»0750 PRINT "Kun et forkert svar - ikke værst ";NAVN$«, l3=0x34}
0x0905…0912 Line {l1=0x0b, l2=»0760 WHEN 5«, l3=0x0b}
0x0912…092b Line {l1=0x17, l2=»0770 IF FEJL=TRUE THEN «, l3=0x17}
0x092b…095c Line {l1=0x2f, l2=»0780 PRINT "Godt ";NAVN$;", 5 rigtige svar - ";«, l3=0x2f}
0x095c…098b Line {l1=0x2d, l2=»0790 PRINT "omend ikke alle i første forsøg."«, l3=0x2d}
0x098b…0997 Line {l1=0x0a, l2=»0800 ELSE «, l3=0x0a}
0x0997…09b4 Line {l1=0x1b, l2=»0810 PRINT "Perfekt ";NAVN$«, l3=0x1b}
0x09b4…09c1 Line {l1=0x0b, l2=»0820 ENDIF «, l3=0x0b}
0x09c1…09d0 Line {l1=0x0d, l2=»0830 ENDCASE «, l3=0x0d}
0x09d0…09d7 Line {l1=0x05, l2=»0900 «, l3=0x05}
0x09d7…09f0 Line {l1=0x17, l2=»0910 PROC RND(LOW,HIGH)«, l3=0x17}
0x09f0…0a0c Line {l1=0x1a, l2=»0920 RNDX:=RNDSEED+3.14159«, l3=0x1a}
0x0a0c…0a2a Line {l1=0x1c, l2=»0930 RNDX:=EXP(5.0*LN(RNDX))«, l3=0x1c}
0x0a2a…0a48 Line {l1=0x1c, l2=»0940 RNDSEED:=RNDX-INT(RNDX)«, l3=0x1c}
0x0a48…0a75 Line {l1=0x2b, l2=»0950 RND:=INT((RNDSEED*(HIGH-LOW)+LOW)+0.5)«, l3=0x2b}
0x0a75…0a87 Line {l1=0x10, l2=»0960 ENDPROC RND«, l3=0x10}
0x0a87…0aaa Line {l1=0x21, l2=»0359 // ke alle i første forsøg."«, l3=0x21}
0x0aaa…0ac0 00 00 30 30 38 30 20 45 4e 44 57 48 49 4c 45 20 0e 0d 30 30 39 30 ┆ 0080 ENDWHILE 0090┆
0x0ac0…0ae0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x47…]