Задача 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 - то это тоже была бы ситуация для завершения, но элементы в массиве ещё бы остались.Примечание: оформить код сдвига элемента как функцию.
program u15z10;
type mas=array [1..5] of integer;
var i,b,z,y:integer;
a: mas;
function minus(d:integer; e:mas): mas;
var j:integer;
begin
for j:=d to high(e) do //сдвигаем массив
if j=high(e) then
e[j]:=0
else
e[j]:=e[j+1];
result:=e;
end;
begin
z:=1;
randomize();
for i:=low(a) to high(a) do //заполняем массив случайными числами
begin
a[i] :=random(10);
write(a[i],' ');
end;
writeln();
while z>0 do
begin
writeln('Vvedite chislo ot 1 do 5');
readln(b);
if (b>5) or (b<1) then
begin
writeln('Error');
break
end;
a:=minus(b,a);
for i:=low(a) to high(a) do //выводим массив без числа под номером b
begin
write(a[i],' ');
if a[i]=0 then
y:=y+1
else
y:=0;
end;
if y>=5 then
begin
writeln();
writeln('vse elementu 0');
break;
end;
writeln();
end;
readln();
end. - Log in to post comments
- 523 reads
vedro-compota
Wed, 01/04/2023 - 17:21
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)