Одномерный массив размерностью 2n - Free Pascal
Формулировка задачи:
Друзья выручайте!!! Горю!!! Сроки сдачи жмут...
Одномерный массив размерностью 2n, где n — целое положительное число, заполнен случайными положительными целыми числами. Изменить массив по следующему правилу: в первую ячейку поместить модуль разности между значениями первой и второй ячеек, во вторую — модуль разности между значениями второй и третьей ячеек, … в последнюю — модуль разности между значениями последней и первой ячеек. Определить, сколько понадобится таких преобразований, прежде чем массив будет состоять из одних нулей.
Решение задачи: «Одномерный массив размерностью 2n»
textual
Листинг программы
const n=2; type mas=array[1..2*n] of integer; var a:mas; i,j,l:integer; s:string; procedure print(a:mas;s:string); var i:integer; begin writeln(s); for i:=1 to 2*n do write (a[i]:4); writeln; end; function check(a:mas):boolean; var i:integer; ok:boolean; begin ok:=true; for i:=1 to 2*n do if a[i]>0 then ok:=false; check:=ok; end; begin randomize; for i:=1 to 2*n do a[i]:=random(100); j:=0; print(a,'Исходный массив:'); repeat l:=a[1]; for i:=1 to 2*n-1 do a[i]:=abs(a[i]-a[i+1]); a[2*n]:=abs(l-a[2*n]); inc(j); str(j,s); print(a,s+'-ая итерация:'); until check(a); end.
Объяснение кода листинга программы
- Объявлены константа
n
(размерность массива), тип массиваmas
и переменныеa
,i
,j
,l
,s
. - В функции
print
выводится строкаs
, а затем элементы массиваa
с шагом 4. - В функции
check
проверяется, все ли элементы массиваa
положительны. - В основном блоке кода инициализируются элементы массива
a
случайными числами. - Цикл
repeat-until
выполняется до тех пор, пока все элементы массиваa
не станут положительными. - На каждой итерации цикла выводится текущий массив, а затем элементы вычисляются как абсолютное значение разности каждого элемента с последующим элементом.
- Последний элемент массива вычисляется как абсолютное значение разности последнего элемента и
l
. - Переменная
j
инкрементируется на каждой итерации цикла. - Строка
s
формируется путем преобразования переменнойj
в строку. - После каждой итерации цикла вызывается функция
print
для вывода текущего массива и строки, представляющей текущую итерацию. - Цикл продолжается до тех пор, пока все элементы массива
a
не станут положительными.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д