|
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: 5056 (0x13c0) Notes: Mikados TextFile, Mikados_K Names: »REGNEOPG«
└─⟦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«
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."