September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
40
Task/Digital-root/Component-Pascal/digital-root.component
Normal file
40
Task/Digital-root/Component-Pascal/digital-root.component
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
MODULE DigitalRoot;
|
||||
IMPORT StdLog, Strings, TextMappers, DevCommanders;
|
||||
|
||||
PROCEDURE CalcDigitalRoot(x: LONGINT; OUT dr,pers: LONGINT);
|
||||
VAR
|
||||
str: ARRAY 64 OF CHAR;
|
||||
i: INTEGER;
|
||||
BEGIN
|
||||
dr := 0;pers := 0;
|
||||
LOOP
|
||||
Strings.IntToString(x,str);
|
||||
IF LEN(str$) = 1 THEN dr := x ;EXIT END;
|
||||
i := 0;dr := 0;
|
||||
WHILE (i < LEN(str$)) DO
|
||||
INC(dr,ORD(str[i]) - ORD('0'));
|
||||
INC(i)
|
||||
END;
|
||||
INC(pers);
|
||||
x := dr
|
||||
END;
|
||||
END CalcDigitalRoot;
|
||||
|
||||
PROCEDURE Do*;
|
||||
VAR
|
||||
dr,pers: 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
|
||||
CalcDigitalRoot(s.int,dr,pers);
|
||||
StdLog.Int(s.int);
|
||||
StdLog.String(" Digital root: ");StdLog.Int(dr);
|
||||
StdLog.String(" Persistence: ");StdLog.Int(pers);StdLog.Ln
|
||||
END
|
||||
UNTIL s.rider.eot;
|
||||
END Do;
|
||||
END DigitalRoot.
|
||||
Loading…
Add table
Add a link
Reference in a new issue