LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Так?

MODULE A;
	IMPORT Log := StdLog, In := i21sysIn;
	
	PROCEDURE Do*;
		VAR num, part: INTEGER; max: LONGINT; i: INTEGER;
	BEGIN
		In.Open; ASSERT(In.done);
		In.Int(num); In.Int(part); ASSERT(In.done);
		max := ASH(1, 4*LONG(num)) - 1;
		i := 0; WHILE i < part DO
			Log.IntForm(max * i DIV (part), 16, 0, "0", FALSE); Log.String(", ");
			Log.IntForm(max * (i + 1) DIV (part) - 1, 16, 0, "0", FALSE);
			Log.Ln;
		INC(i) END;
	END Do;
	
END A.

(!)A.Do 1 3
0, 4
5, 9
A, E
(!)A.Do 7 3
0, 5555554
5555555, AAAAAA9
AAAAAAA, FFFFFFE

Исходная версия X512, :

Так?

MODULE A;
	IMPORT Log := StdLog, In := i21sysIn;
	
	PROCEDURE Do*;
		VAR num, part: INTEGER; max: LONGINT; i: INTEGER;
	BEGIN
		In.Open; ASSERT(In.done);
		In.Int(num); In.Int(part);
		max := ASH(1, 4*LONG(num)) - 1;
		i := 0; WHILE i < part DO
			Log.IntForm(max * i DIV (part), 16, 0, "0", FALSE); Log.String(", ");
			Log.IntForm(max * (i + 1) DIV (part) - 1, 16, 0, "0", FALSE);
			Log.Ln;
		INC(i) END;
	END Do;
	
END A.

(!)A.Do 1 3
0, 4
5, 9
A, E
(!)A.Do 7 3
0, 5555554
5555555, AAAAAA9
AAAAAAA, FFFFFFE