Составить процедуру (или функцию), которая меняет порядок элементов массива - PascalABC.NET

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

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

Составить процедуру (или функцию), которая меняет порядок элементов массива, стоящих на четных местах, на обратный. Например, для исходного массива 1,2,3,4,5,6 результатом является 1,6,3,4,5,2. Следующие действия должны выполняться отдельными процедурами (и/или функциями): 1) заполнение массива случайными числами из заданного интервала; 2) вывод массива на экран; 3) заполнение массива нулями (инициализация); 4) сохранение массива в текстовый файл; 5) чтение массива из текстового файла; 6) удаление нескольких элементов из указанного места (со сдвигом); 7) добавление нескольких элементов в указанное место (со сдвигом). Процедуры (и/или функции) должны работать с массивами как с параметрами, но не как с глобальными переменными. Заранее спасибо за помощь

Решение задачи: «Составить процедуру (или функцию), которая меняет порядок элементов массива»

textual
Листинг программы
  1. const
  2.   n = 11;
  3.  
  4. var
  5.   a: array[1..n] of integer;
  6.   i, c, k: integer;
  7.   f: text;
  8.  
  9. procedure back;
  10. var
  11.   i: integer;
  12. begin
  13.   if n mod 2 = 0 then k := 2 else k := 1;
  14.   for i := 1 to n div 2 do
  15.     if i mod 2 = 0 then
  16.     begin                                      //числа на четных позициях меняются местами
  17.       c := a[i];                              
  18.       a[i] := a[n - i + k];
  19.       a[n - i + k] := c;
  20.     end;
  21. end;
  22.  
  23. procedure fileout;
  24. var
  25.   i: integer;
  26. begin
  27.   assign(f, 'Fileout.txt');
  28.   rewrite(f);
  29.   for i := 1 to n do                   //вывод результата в файл
  30.     write(f, a[i], ' ');
  31.   close(f);
  32. end;
  33.  
  34. begin
  35.   for i := 1 to n do
  36.     a[i] := random(1, 50);        //заполнение числами из заданного интервала
  37.  
  38.   for i := 1 to n do write(a[i], ' ');
  39.   writeln;
  40.  
  41.   back;
  42.  
  43.   Fileout;
  44.  
  45.   for i := 1 to n do write(a[i], ' ');    //вывод результата на экран
  46. end.

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

  1. В коде используется язык программирования PascalABC.Net.
  2. Задана переменная n со значением 11, которая определяет размер массива.
  3. Создается массив a размером 11, который заполняется случайными числами от 1 до 50 с помощью цикла for и функции random.
  4. Выводится начальный порядок элементов массива на экран с помощью цикла for и функции write.
  5. Определена процедура back, которая меняет порядок четных элементов массива a путем перестановки их местами с элементами, находящимися на позициях, кратных 2.
  6. Определена процедура fileout, которая записывает элементы массива a в файл Fileout.txt в порядке их исходного расположения.
  7. В основной части программы вызываются процедуры back и fileout после вычисления и вывода начального порядка элементов массива a.
  8. Выводится измененный порядок элементов массива a на экран с помощью цикла for и функции write.

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


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

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

6   голосов , оценка 3.833 из 5

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

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

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