Одномерный массив размерностью 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
не станут положительными.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д