Урок 15 задача 9
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 project1; type newArr = array [1..5] of integer; var numArr: newArr; i,n: integer; procedure shiftArr(var promArr: newArr; k:integer); var j:integer; begin for j:=k to 4 do promArr[j]:=promArr[j+1]; promArr[high(promArr)]:=0; end; begin randomize; for i:=1 to 5 do begin numArr[i]:=1+random(20); write(numArr[i],'|'); end; writeln(); write('Случайное значение N: '); readln(n); while(n<high(numArr))do begin shiftArr(numArr,n); if((numArr[low(numArr)]=0)or(n<1))then begin break; end; for i:=1 to 5 do write(numArr[i],'|'); writeln(); write('Случайное значение N: '); readln(n); end; readln(); end.
- Log in to post comments
- 1613 reads
vedro-compota
Sun, 01/16/2022 - 13:06
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)
sergio
Sat, 01/22/2022 - 20:55
Permalink
прт вводе 5 не сдвигает массив
Привет , при попытке ввести 5 не сдвигает массив
alexander263
Sat, 03/05/2022 - 21:19
Permalink
Исправлено
vedro-compota
Wed, 03/16/2022 - 21:01
Permalink
Пусть есть процедура, которая
Пусть есть процедура, которая умеет сдвигать массив влево на 1 элемент, начиная с указанного символа (устанавливая последний элемент равным нулю):
Задача: У вас есть исходный массив случайных целых чисел из 5 элементов. Пользователь вводит три числа целых числа, сохраните их во второй массив и затем проведите сдвиг элементов исходного массива, если они совпадают с каким-то из введенных чисел.
Пример 1:
Пример 2:
Пример 3:
_____________
матфак вгу и остальная классика =)