Одномерный массив размерностью 2n - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Друзья выручайте!!! Горю!!! Сроки сдачи жмут... Одномерный массив размерностью 2n, где n — целое положительное число, заполнен случайными положительными целыми числами. Изменить массив по следующему правилу: в первую ячейку поместить модуль разности между значениями первой и второй ячеек, во вторую — модуль разности между значениями второй и третьей ячеек, … в последнюю — модуль разности между значениями последней и первой ячеек. Определить, сколько понадобится таких преобразований, прежде чем массив будет состоять из одних нулей.

Решение задачи: «Одномерный массив размерностью 2n»

textual
Листинг программы
  1. const n=2;
  2. type mas=array[1..2*n] of integer;
  3. var
  4.   a:mas;
  5.   i,j,l:integer;
  6.   s:string;
  7. procedure print(a:mas;s:string);
  8. var
  9.   i:integer;
  10. begin
  11.   writeln(s);
  12.   for i:=1 to 2*n do write (a[i]:4);
  13.   writeln;
  14. end;
  15. function check(a:mas):boolean;
  16. var
  17.   i:integer;
  18.   ok:boolean;
  19. begin
  20.   ok:=true;
  21.   for i:=1 to 2*n do if a[i]>0 then ok:=false;
  22.   check:=ok;
  23. end;  
  24. begin
  25.   randomize;
  26.   for i:=1 to 2*n do a[i]:=random(100);
  27.   j:=0;
  28.     print(a,'Исходный массив:');  
  29.   repeat
  30.     l:=a[1];
  31.     for i:=1 to 2*n-1 do a[i]:=abs(a[i]-a[i+1]);
  32.     a[2*n]:=abs(l-a[2*n]);
  33.     inc(j);
  34.     str(j,s);
  35.     print(a,s+'-ая итерация:');
  36.   until check(a);
  37. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы