Одномерный массив заполнить случайными положительными целыми числами. Изменять массив по следующему правилу: в первую ячейку помещать модуль разности между значениями первой и второй ячеек, во вторую – модуль разности между значениями второй и третьей ячеек, и т. д. В последнюю ячейку помещать модуль разности между значениями последней и первой ячеек. Если выполнять такие преобразования многократно, то можно ли в конечном итоге свести все элементы массива к нулю?
Внешний цикл должен быть бесконечным и прерываться оператором break, если все элементы массива равняются нулю. Для этого можно внутри цикла ввести переменную-флаг, присвоив ей 0, затем проверить каждый элемент, и, если хотя бы одни из них не равен 0, изменить значение флага на 1. После этого цикла-проверки выяснить, если флаг остался равен нулю, то прервать выполнение внешнего цикла. Это будет означать, что массив свелся к нулевым значениям всех своих элементов.
Изменение массива будет протекать во внутреннем цикле от первого элемента до предпоследнего: в каждую ячейку будет записываться абсолютное значение разницы между этой и следующей ячейками. Значение последней ячейки массива будет вычисляться после этого цикла. Для контроля происходящего нужно выводить значение элементов массива на экран.
const N = 10; var a: array[1..N] of byte; i,flag: byte; begin randomize; for i:=1 to N do begin a[i] := random(20); write(a[i]:3); end; writeln; while True do begin for i:=1 to N-1 do begin a[i] := abs(a[i] - a[i+1]); write(a[i]:3); end; a[N] := abs(a[N]-a[1]); write(a[N]:3); writeln; flag := 0; for i:=1 to N do if a[i] 0 then begin flag := 1; break; end; if flag = 0 then break; end; end.
При выполнении программы происходит зацикливание (была прервана вручную - Ctrl+C):
18 14 7 15 2 9 3 19 10 18 4 7 8 13 7 6 16 9 8 14 3 1 5 6 1 10 7 1 6 11 2 4 1 5 9 3 6 5 5 9 2 3 4 4 6 3 1 0 4 7 1 1 0 2 3 2 1 4 3 6 0 1 2 1 1 1 3 1 3 6 1 1 1 0 0 2 2 2 3 5 0 0 1 0 2 0 0 1 2 5 0 1 1 2 2 0 1 1 3 5 1 0 1 0 2 1 0 2 2 4 1 1 1 2 1 1 2 0 2 3 0 0 1 1 0 1 2 2 1 3 0 1 0 1 1 1 0 1 2 3 1 1 1 0 0 1 1 1 1 2 0 0 1 0 1 0 0 0 1 2 0 1 1 1 1 0 0 1 1 2 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0^C 1 0
Так как происходит зацикливание, значит массив не сводится к нулевым значениям элемента.
Последние комментарии
17 часов 46 мин. назад
18 часов 53 мин. назад
1 день 5 часов назад
3 дня 11 часов назад
5 дней 5 часов назад
5 дней 21 час назад
6 дней 7 часов назад
6 дней 8 часов назад
6 дней 20 часов назад
1 неделя 10 часов назад