Составить процедуру (или функцию), которая меняет порядок элементов массива - PascalABC.NET
Формулировка задачи:
Составить процедуру (или функцию), которая меняет порядок элементов массива,
стоящих на четных местах, на обратный. Например, для исходного массива 1,2,3,4,5,6
результатом является 1,6,3,4,5,2.
Следующие действия должны выполняться отдельными процедурами (и/или
функциями): 1) заполнение массива случайными числами из заданного интервала; 2)
вывод массива на экран; 3) заполнение массива нулями (инициализация); 4) сохранение
массива в текстовый файл; 5) чтение массива из текстового файла; 6) удаление
нескольких элементов из указанного места (со сдвигом); 7) добавление нескольких
элементов в указанное место (со сдвигом). Процедуры (и/или функции) должны работать
с массивами как с параметрами, но не как с глобальными переменными.
Заранее спасибо за помощь
Решение задачи: «Составить процедуру (или функцию), которая меняет порядок элементов массива»
textual
Листинг программы
const n = 11; var a: array[1..n] of integer; i, c, k: integer; f: text; procedure back; var i: integer; begin if n mod 2 = 0 then k := 2 else k := 1; for i := 1 to n div 2 do if i mod 2 = 0 then begin //числа на четных позициях меняются местами c := a[i]; a[i] := a[n - i + k]; a[n - i + k] := c; end; end; procedure fileout; var i: integer; begin assign(f, 'Fileout.txt'); rewrite(f); for i := 1 to n do //вывод результата в файл write(f, a[i], ' '); close(f); end; begin for i := 1 to n do a[i] := random(1, 50); //заполнение числами из заданного интервала for i := 1 to n do write(a[i], ' '); writeln; back; Fileout; for i := 1 to n do write(a[i], ' '); //вывод результата на экран end.
Объяснение кода листинга программы
- В коде используется язык программирования PascalABC.Net.
- Задана переменная
nсо значением 11, которая определяет размер массива. - Создается массив
aразмером 11, который заполняется случайными числами от 1 до 50 с помощью циклаforи функцииrandom. - Выводится начальный порядок элементов массива на экран с помощью цикла
forи функцииwrite. - Определена процедура
back, которая меняет порядок четных элементов массиваaпутем перестановки их местами с элементами, находящимися на позициях, кратных 2. - Определена процедура
fileout, которая записывает элементы массиваaв файлFileout.txtв порядке их исходного расположения. - В основной части программы вызываются процедуры
backиfileoutпосле вычисления и вывода начального порядка элементов массиваa. - Выводится измененный порядок элементов массива
aна экран с помощью циклаforи функцииwrite.