Задача 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
- 624 reads
vedro-compota
Wed, 02/16/2022 - 19:20
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)