Страница 4
Вводим описание новых внутренних переменных:
var {Рабочие переменные}
i, j: word;
На первый взгляд, кажется, что необходимо ввести переменное количество промежуточных массивов (в зависимости от количества цифр второго сомножителя) для запоминания продукта умножения первого сомножителя на очередную цифру второго сомножителя. Однако внимательный анализ структур данных позволяет найти иной способ выполнения расчетов. При этом способе сначала обнуляется результат. Далее результат последовательно увеличивается на сдвинутый на разряд влево продукт умножения первого сомножителя на очередную цифру второго сомножителя. Переоформляем наглядное изображение процесса преобразования входных данных обобщающего теста.
Следование "Вся программа" детализируется ЦЕПОЧКОЙ СЛЕДОВАНИЙ:
begin
ClrScr; {Очистка экрана}
{Ввод корректного значения числа цифр первого сомножителя}
C1.N
Write('Вводите цифры первого сомножителя ');
{Ввод цифр первого сомножителя в порядке от C1.D[C1.N] до C1.D[1]}
C1.D
WriteLn;
{Ввод корректного значения числа цифр второго сомножителя}
С2.N
Write('Вводите цифры второго сомножителя ');
{Ввод цифр второго сомножителя в порядке от C2.D[C2.N] до C2.D[1]}
WriteLn;
{Расчет произведения сомножителей}
R.D R.N Error
{Устранение лидирующих нулей}
WriteLn;
{Вывод результата произведения}
WriteLn;
end.
Без отступов показана входная и выходная информация структур, которая использовалась при проверке информационной согласованности СЛЕДОВАНИЙ в ЦЕПОЧКЕ СЛЕДОВАНИЙ.
СЛЕДОВАНИЕ "Устранение лидирующих нулей" необходимо при использовании сомножителя, состоящего из нескольких нулей.
СЛЕДОВАНИЕ "Ввод корректного значения числа цифр первого сомножителя" декомпозируется циклом:
{Ввод корректного значения числа цифр первого сомножителя}
repeat
Write('Введите число цифр первого сомножителя');
Write(' от 1 до ', Digits, ' ');
ReadLn(C1.N);
until ((C1.N >= 1) and (C1.N <= Digits));
Цикл оттестирован тремя тестами: C1.N=1; C1.N=3; C1.N=Digits.
Аналогично декомпозируется процесс "Ввод корректного значения числа цифр второго сомножителя".
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии