Одномерный массив размерностью 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.

Объяснение кода листинга программы

  1. Объявлены константа n (размерность массива), тип массива mas и переменные a, i, j, l, s.
  2. В функции print выводится строка s, а затем элементы массива a с шагом 4.
  3. В функции check проверяется, все ли элементы массива a положительны.
  4. В основном блоке кода инициализируются элементы массива a случайными числами.
  5. Цикл repeat-until выполняется до тех пор, пока все элементы массива a не станут положительными.
  6. На каждой итерации цикла выводится текущий массив, а затем элементы вычисляются как абсолютное значение разности каждого элемента с последующим элементом.
  7. Последний элемент массива вычисляется как абсолютное значение разности последнего элемента и l.
  8. Переменная j инкрементируется на каждой итерации цикла.
  9. Строка s формируется путем преобразования переменной j в строку.
  10. После каждой итерации цикла вызывается функция print для вывода текущего массива и строки, представляющей текущую итерацию.
  11. Цикл продолжается до тех пор, пока все элементы массива a не станут положительными.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы