Утроить вхождение всех элементов в массиве с нечетными номерами - Turbo Pascal
Формулировка задачи:
Решение задачи: «Утроить вхождение всех элементов в массиве с нечетными номерами»
uses crt;
const nmax=100;
var a:array[1..3*nmax] of integer;
n,i,j,k,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
begin
a[i]:=random(50);
write(a[i]:4);
end;
writeln;
i:=n;{начнем с конца чтоьы не менялись индексы непроверенных}
while i>=1 do
if odd(i) then {если нечетный номер}
begin
for k:=1 to 2 do { 2 раза}
begin
x:=a[i];{запомним элемент}
n:=n+1; {увеличим размер массива}
for j:=n downto i+1 do {раздвинем массив вправо}
a[j]:=a[j-1];
a[i]:=x;{вставим элемент}
end;
i:=i-1;{к началу}
end
else i:=i-1;{если четный номер к началу}
for i:=1 to n do
write(a[i]:4);
readln
end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он предназначен для создания и работы с массивами целых чисел.
В начале кода объявляется переменная nmax, которая представляет максимально возможное количество элементов в массиве.
Далее объявляются переменные n, i, j, k, x, которые будут использоваться в цикле и для обработки элементов массива.
Цикл повторяется до тех пор, пока размер массива n не станет от 1 до nmax. В каждой итерации цикла пользователю предлагается ввести размер массива.
После этого выводится исходный массив. Каждый элемент массива генерируется случайным образом от 1 до 50 с помощью функции random(50).
Затем начинается цикл while, который продолжается до тех пор, пока текущий индекс i не станет четным. Если текущий индекс i нечетный, то происходит следующее:
- Запоминается текущий элемент массива
x. - Увеличивается размер массива
nна 1. - Все элементы массива с индексами от
nдоi+1сдвигаются вправо на одну позицию влево. - Текущий элемент массива
xвставляется на место элемента с индексомi. - Индекс
iсбрасывается на предыдущее значениеi-1. Если текущий индексiчетный, то просто сбрасывается на предыдущее значениеi-1. После завершения цикла выводится массив с элементами, которые были введены пользователем.