Задача 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 a: array [1..5] of integer; i, N , min, max: integer; begin min := 1; max := 100; randomize(); for i := 1 to 5 do a[i] := random(max - min + 1) + min; for i := low(a) to high(a) do //цикл вывода на экран начального массива begin write(a[i], ' '); end; writeln(); repeat writeln('vvedi kluch dlya ydaleniya '); readln(N); for i := low(a) to high(a) do begin if (i < N) then a[i]:=a[i] else if(i < 5) then a[i] := a[i + 1] else a[i]:=0; write(a[i], ' '); end; writeln(); until((N < 1) or (5 < N) or (a[1] = 0)); writeln('finishhh'); readln(); end.
- Log in to post comments
- 3152 reads
vedro-compota
Sun, 09/05/2021 - 13:26
Permalink
вынести сдвиг в продпрограмму
вынести сдвиг в продпрограмму
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 09/06/2021 - 21:39
Permalink
RE
vedro-compota
Wed, 09/08/2021 - 20:08
Permalink
if (i < N) then
-- переписать нормально
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Thu, 09/09/2021 - 13:19
Permalink
RE
vedro-compota
Sat, 09/11/2021 - 11:51
Permalink
procedure moover(var a: inArr
-- задать начальные и конечные индексы сразу, напр. нет смысл перебирать элементы "до N"
+ странность с условием:
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 09/13/2021 - 22:25
Permalink
RE
vedro-compota
Tue, 09/14/2021 - 21:00
Permalink
for i := N to high(a) do
судя по всему есть выход за пределы массива
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Thu, 09/16/2021 - 19:46
Permalink
if(i = high(a)) then - не позволит выйти за предел
vedro-compota
Sun, 10/03/2021 - 12:32
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)