Задача 10 Урок 15
Primary tabs
Заполните массив из 5 элементов случайными числами из любого диапазона.
Далее пользователь вводит в цикле значения от 1 до 5 -- удаляйте
из массива очередной элемент с позиции очередного введенного пользователем
числа, сдвигая оставшиеся элементы массива влево, заполняя то, что справа
нулями. Распечатывайте промежуточной состояние массива, после каждого удаления.
Цикл должен работать до тех пор, пока в массиве не останется ненулевых
элементов или пока пользователь не введет число большее чем 5 или меньшее чем 1.
Например:
|1|3|7|5|4| // исходный массив
3 // ввод пользователя
|1|3|5|4|0| // промежуточный результат
3 // ввод пользователя
|1|3|4|0|0| // промежуточный результат
2 // ввод пользователя
|1|4|0|0|0| // промежуточный результат
1 // ввод пользователя
|4|0|0|0|0| // промежуточный результат
1 // ввод пользователя
|0|0|0|0|0| // промежуточный результат
// Cообщение о завершении, т.к. все элементы удалены
-- в данном случае программа завершилась, так как удалены все элементы.
Если бы пользователь ввел число 10 или -5 - то это тоже была бы ситуация для завершения, но элементы в массиве ещё бы остались.
Примечание: оформить код сдвига элемента как функцию.
type myArr1 = array[1..5] of integer; var a: myArr1; min, max, i, n, j : integer; function sdvig(var a : myArr1; n : integer) : myArr1; var i : integer; begin writeln('Убираем число ', a[n]); for i := n to high(a) do a[i] := a[i+1]; end; begin randomize(); min := 1; max := 15; for i:=low(a) to high(a) do a[i] := min + random(max - min + 1); write('Числа массива до операции: '); for i := low(a) to high(a) do write(a[i], ' '); writeln; for j := 1 to 5 do begin writeln('Какое число убрать?'); readln(n); if (n < 0) or (n > 5) then break; sdvig(a, n); write('Числа массива после операции: '); for i := low(a) to high(a) do write(a[i], ' '); writeln; end; write('Программа завершила свою работу'); readln();readln(); end.
- Log in to post comments
- 244 reads