· Перед включением заданного элемента в массив, необходимо раздвинуть этот массив, т.е. передвинуть «хвост» массива вправо на одну позицию, т.е. выполняя операцию: ai+1=ai, где i = N, N-1, …, k.
· Перемещение элементов массива начинаем с конца, в противном случае весь хвост массива заполнится k-ым элементом.
· Размер массива увеличится до N+1 элемента.
Var a:array [1..100] of integer;
n,k,i:byte; m:integer;
Begin
Randomize;
Readln(n); // количество элементов
Readln(k); //№ включаемого элемента
Readln(m); //значение включаемого эл-та
{формируем массив}
For i:=1 to n do begin
a[i]:=random(101)-50;
write(a[i]:4)
end; writeln;
{раздвигаем эл-ты массива}
For i:=n downto k do
a[i+1]:=a[i];
{заносим новый эл-т на k-ую позицию}
a[k]:=m;
{выводим получившийся массив}
For i:=1 to n+1 do
write(a[i]:4);
end.
ВСТАВКА ЭЛЕМЕНТОВ В МАССИВ Задан одномерный массив размера 10. Необходимо вставить число 5 после третьего элемента.
1. Сколько элементов в массиве? (10.)
2. Сколько элементов станет в массиве в результате вставки числа 5 после третьего элемента? (11.)
3. Какой индекс будет у вставленного элемента? (4.)
4. Что должно произойти с элементами с первого по третий? (Эти элементы не должны измениться.)
5. Какой элемент должен быть помещен на пятое место? (На пятое место должен переместиться четвертый элемент.)
6. На шестое? На седьмое? (На шестое — пятый. На седьмое — шестой.)
7. Какую закономерность вы можете указать? (Элементы сдвигаются вправо.)
8. Элементы с какими индексами останутся неизменными, а с какими будут изменены? (Неизменными останутся элементы с индексами 1—3, на четвертое место помещается число 5, а изменяются все остальные.)
9. Начиная с какого индекса элементы должны перемещаться? (Перемещаться должны элементы с четвертого.)
10. Необходимо перемещать элементы вправо или влево? (Вправо.)
11. Если на четвертое место поместить пятерку, что произойдет с тем элементом, который находился до этого на четвертом месте? (Его значение потеряется.)
12. Перемещение лучше начать с четвертого или с последнего элемента? (С последнего.)
13. Какой элемент должен быть перемещен на место элемента A[i]? (A[i] :=A[i — 1].)
for i:=11 downto 5 do A[i]:=A[i-1]; A[4]:=5.
В одномерном массиве вставить после минимального элемента число 10.
const n=10; var A: array[l..n+1] of integer; min, i, k: integer; begin randomize; for i:=1to n do A[i]:=-20+random(60); for i:=1 to n do write(A[i]:4); writeln; min:=A[1]; for i:=1 to n do if A[i]<=min then begin min:=A[i]; k:=i; end; for i:=n+1 downto k+2 do A[i]:=A[i-1]; A[k+1]:=10; for i:=l to n+1 do write(A[i]:4); writeln; end.
В одномерном массиве вставить число 100 перед первым отрицательным элементом.
const n=10; var A: array[1..n+1] of integer; i, k: integer; begin randomize; for i:=1 to n do A[i]:=-20+random(60); for i:=1to n do if A[i]<0 then begin k:=i; i:=n; end; for i:=n+1downto k+1 do A[i]:=A[i-1]; A[k]:=100; for i:=1 to n+1 do write(A[i]:4); writeln; end.
ПЕРЕМЕЩЕНИЕ ЭЛЕМЕНТОВ В МАССИВЕ Задан одномерный массив размера 10. Осуществить перемещение элементов массива следующим образом: последний элемент записать на место первого, при этом сдвинув первый, второй, ..., предпоследний элементы на одну позицию вправо.
1. Сколько элементов в массиве? (10.)
2. Изменится ли количество элементов в массиве после перемещения? (Нет.)
3. Какой элемент должен оказаться на месте первого? На месте второго? На месте третьего? (Десятый. Первый. Второй.)
4. Можно ли последний элемент сразу поместить на место первого? Что станет в этом случае с первым элементом? (Нет. Его значение будет потеряно.)
5. Можно ли сначала переместить поочередно все элементы вправо, начиная с первого, а затем последний элемент поместить на место первого? Что станет в этом случае с последним элементом? (Нет. Его значение будет утеряно.)
6. Можно ли этого избежать, заведя дополнительную переменную? (Да. В дополнительную переменную можно поместить значение последнего элемента. Затем переместить элементы с девятого до первого вправо. Далее на первое место поместить значение десятого элемента из дополнительной переменной.)
t:=A[10]; for i:=10 downto 2 do A[i]:=A[i-1]; A[l]:=t.
Дан массив размера N. Поменять порядок его элементов на обратный.
vara: array [1..10] of integer; t:integer; // для обмена значениями двух переменных N:integer; i:integer; // счетчик в цикле begin
Дан массив размера N. Поменять местами его минимальный и максимальный элементы.
vara: array [1..10] of integer; t:integer; // для временного хранения значения min,max:integer; // номера макс. и мин. элементов N:integer; i:integer; // счетчик в цикле begin
ввод данных readln(N);
формирование исходного массива fori:=1 ton do
readln(A[i]);
начальноезначениепеременных min:=1; max:=1; for i:=1 to n dobegin// определениеномеровискомыхэлементов if a[i] < a[min] then min:=i; if a[i] > a[max] thenmax:=i; end;