DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦ccd9b75b8⟧

    Length: 5056 (0x13c0)
    Notes: Mikados TextFile, Mikados_K
    Names: »REGNEOPG«

Derivation

└─⟦92e6f589c⟧ Bits:30003895/4xCOMAL3b.imd 4 * COMAL - SPC/1 - Disketter til bogen
    └─⟦this⟧ »REGNEOPG« 
└─⟦faca42ef2⟧ Bits:30003895/4xCOMAL1.imd 4 * COMAL - SPC/1 - Disketter til bogen
    └─⟦this⟧ »REGNEOPG« 

Text

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."