Задача 9 Урок 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 - то это тоже была бы ситуация для завершения, но элементы в массиве ещё бы остались.
var i, n, k: integer;
a: array [1..5] of integer;
begin
randomize();
for i := 1 to 5 do a[i] := random(61) - 30;
write('Исходный массив: ');
for i := 1 to 5 do write(a[i], ' ');
writeln();
write('Введите число от 1 до 5: ');
readln(n);
while(n >= 1) and (n <= 5) do
begin
for i := n to 5 do a[i] := a[i + 1];
write('Промежуточный результат: ');
for i := 1 to 5 do write(a[i], ' ');
writeln();
for i := 1 to 5 do
if a[i] = 0 then
k += 1;
if k = 5 then
begin
write('Массив пуст');
break;
end
else
begin
write('Введите число от 1 до 5: ');
readln(n);
k := 0;
end;
end;
readln();
end.- Log in to post comments
- 661 reads