Design part 3.1

PROCEDURE MergeRuns(VAR In1, In2, Result: TEXT);

{объединяем серии из In1 и In2 в Result}

VAR

Ch, Ch1, Choice: CHAR;

BEGIN {MergeRuns}

{инициализируем параметры файлов}

READ(In1, Ch1);

READ(In2, Ch2);

{если ни один из файлов In1 и In2 не пустой, то Ch:= min(Ch1, Ch2)};

WHILE NOT EOF(In1) AND NOT EOF(In2)

DO

BEGIN {объединяем серии из In1 и In2 в Result}

{устанавливаем в переменной Choice значение ‘1’ для чтения из In1

‘2’ – для чтения из In2};

{Заменяем Ch переменной Ch1 либо Ch2 в зависимости от значения Choice и получаем

новое значение для переменной Ch1 либо Ch2}

END;

{копируем последнюю серию из In1 либо In2 в Result};

{сбрасываем параметры файлов}

END {MergeRuns}


Design Part 3.1.5

BEGIN {если ни один из файлов In1 и In2 не пустой, то Ch:= min(Ch1, Ch2)}

...

END

Design Part 3.1.1

BEGIN {устанавливаем в переменной Choice значение ‘1’ для чтения из In1 ‘2’ – для чтения из In2}

...

END

Design Part 3.1.2

BEGIN {Заменяем Ch переменной Ch1 либо Ch2 в зависимости от значения Choice и получаем

новое значение для переменной Ch1 либо Ch2}

...

END

Design Part 3.1.3

BEGIN {копируем последнюю серию из In1 либо In2 в Result}

IF NOT EOF(In1)

THEN {копируем последнюю серию из In1 (если такая существует} в Result}

BEGIN

WRITE(Result, Ch1);

CopyOpen(In1, Result)

END

ELSE

BEGIN

WRITE(Result, Ch2);

CopyOpen(In2, Result)

END

END

Последнее, что осталось изменить – это процедуру CheckIfSorted, чтобы учесть тот файт, что символ # более не используется в качестве разделителя серий.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: