September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -0,0 +1,69 @@
|
|||
MODULE MDR;
|
||||
IMPORT StdLog, Strings, TextMappers, DevCommanders;
|
||||
|
||||
PROCEDURE CalcMDR(x: LONGINT; OUT mdr, mp: LONGINT);
|
||||
VAR
|
||||
str: ARRAY 64 OF CHAR;
|
||||
i: INTEGER;
|
||||
BEGIN
|
||||
mdr := 1; mp := 0;
|
||||
LOOP
|
||||
Strings.IntToString(x,str);
|
||||
IF LEN(str$) = 1 THEN mdr := x; EXIT END;
|
||||
i := 0;mdr := 1;
|
||||
WHILE i < LEN(str$) DO
|
||||
mdr := mdr * (ORD(str[i]) - ORD('0'));
|
||||
INC(i)
|
||||
END;
|
||||
INC(mp);
|
||||
x := mdr
|
||||
END
|
||||
END CalcMDR;
|
||||
|
||||
PROCEDURE Do*;
|
||||
VAR
|
||||
mdr,mp: LONGINT;
|
||||
s: TextMappers.Scanner;
|
||||
BEGIN
|
||||
s.ConnectTo(DevCommanders.par.text);
|
||||
s.SetPos(DevCommanders.par.beg);
|
||||
REPEAT
|
||||
s.Scan;
|
||||
IF (s.type = TextMappers.int) OR (s.type = TextMappers.lint) THEN
|
||||
CalcMDR(s.int,mdr,mp);
|
||||
StdLog.Int(s.int);
|
||||
StdLog.String(" MDR: ");StdLog.Int(mdr);
|
||||
StdLog.String(" MP: ");StdLog.Int(mp);StdLog.Ln
|
||||
END
|
||||
UNTIL s.rider.eot;
|
||||
END Do;
|
||||
|
||||
PROCEDURE Show(i: INTEGER; x: ARRAY OF LONGINT);
|
||||
VAR
|
||||
k: INTEGER;
|
||||
BEGIN
|
||||
StdLog.Int(i);StdLog.String(": ");
|
||||
FOR k := 0 TO LEN(x) - 1 DO
|
||||
StdLog.Int(x[k])
|
||||
END;
|
||||
StdLog.Ln
|
||||
END Show;
|
||||
|
||||
PROCEDURE FirstFive*;
|
||||
VAR
|
||||
i,j: INTEGER;
|
||||
five: ARRAY 5 OF LONGINT;
|
||||
x,mdr,mp: LONGINT;
|
||||
BEGIN
|
||||
FOR i := 0 TO 9 DO
|
||||
j := 0;x := 0;
|
||||
WHILE (j < LEN(five)) DO
|
||||
CalcMDR(x,mdr,mp);
|
||||
IF mdr = i THEN five[j] := x; INC(j) END;
|
||||
INC(x)
|
||||
END;
|
||||
Show(i,five)
|
||||
END
|
||||
END FirstFive;
|
||||
|
||||
END MDR.
|
||||
Loading…
Add table
Add a link
Reference in a new issue