5. Для задачи из примера 7.4 выполните перечисленные задания.
1. Заполните таблицу.
2. Добавьте в таблицу свои значения n, a, x, k.
№ | n | a | x | k | Преобразованный массив |
1 | 3 | –2 –3 –5 | 0 | 2 | -2 0 -3 -5 |
2 | 5 | 1 2 3 4 5 | 0 | 1 | 0 1 2 3 4 5 |
3 | 10 | 1 –3 –2 0 4 0 2 –4 0 2 | 10 | 11 | 1 -3 -2 0 4 0 2 -4 0 2 10 |
4 | 5 | 9 6 8 3 5 | 3 | 7 | 9 6 8 3 5 0 |
5 | 5 | -1 4 2 -8 6 | 4 | 9 | -1 4 2 -8 6 0 |
3. Какой результат выдаст программа, если ввести n = 5, а k = 120? Вставьте в программу проверку для числа k (1 < k ≤ n + 1).
Если ввести n = 5
, а k = 120
, программа завершится с ошибкой, поскольку всего элементов в массие 5, а программа пытается получить доступ к элементу массива с номером 120, которого не существует.
Программа с проверкой (1 < k ≤ n + 1)
:
var a: array[1..20] of integer;
n, k, x: integer;
begin
write('Количество n =');
readln(n);
writeln('Элементы массива');
for var i := 1 to n do
read(a[i]);
write('Число x =');
readln(x);
write('Номер позиции k =');
readln(k);
if (1 < k) and (k <= n + 1) then
begin
//сдвиг элементов вправо на 1
for var i:= n downto k do
a[i+1] := a[i];
//вставка x на место k
a[k] := x;
n := n + 1;
writeln('Преобразованный массив');
for var i := 1 to n do
write(a[i], ' ');
end
else
writeln('Неверное число k')
end.
4. Какой результат получим, если заменить цикл из п. 4.1 циклом из п. 4.2?
Если заменить цикл из п. 4.1 циклом из п. 4.2, программа будет выдавать неверный результат. Массив будет обходится слева направо, присваивая следующему элементу текущий, на второй итерации цикла второй элемент будет равен первому — и программа снова присовит следующему элементу текущий элемент, который равен первому. Таким образом массив будет содержать неверные числа.