Задача 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 - то это тоже была бы ситуация для завершения, но элементы в массиве ещё бы остались.Примечание: оформить код сдвига элемента как функцию.
type
MyArray = array[1..5] of integer;
var
a:MyArray;
l,b,i:integer;
function sdvig(a:array of integer; m:integer):MyArray;
var k:integer;
begin
for k:=m to 4 do
a[m]:=a[k+1];
a[5]:=0;
result:=a;
end;
function schet(a:array of integer):integer;
var j,l:integer;
begin
l:=0;
for j:=1 to 5 do
if (a[j]<>0) then
l:=l+1;
result:=l;
end;
begin
randomize();
for i:=1 to 5 do
begin
a[i]:=random(25);
write (a[i],' ');
end;
writeln();
repeat
writeln('Vvedite nomer elementa: ');
readln(b);
if(b=10)or(b=-5) then
break
else
begin
a:=sdvig(a,b);
for i:=1 to 5 do
write(a[i],' ');
writeln();
l:=schet(a);
end;
until(l=0);
end. Консоль:
6 4 5 20 15 Vvedite nomer elementa: 2 Vvedite nomer elementa: 5 6 4 0 20 15 Vvedite nomer elementa: 1 6 0 0 20 15 Vvedite nomer elementa:
- Log in to post comments
- 685 reads
vedro-compota
Wed, 02/16/2022 - 19:20
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)