Задача 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
- 346 reads
vedro-compota
Wed, 01/04/2023 - 17:21
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)