Задача 8 Урок 15: Сдвиг массива - Обсуждение решения
Primary tabs
Заполнить массив из 9 элементов случайными числами, далее получить случайное число N из диапазона от 1 до 9 и затем "удалить" элемент с позиции N из массива, "сдвинув" значения влево и заполнив все что справа нулями.
Например:|1|3|4|5|4|7|-8|-9|Путь n=2, тогда после работы программы мы должны получить:
|1|4|5|4|7|-8|-9|0|Примечание: операции сдвига элементов массива оформите в виде подпрограммы.
type inArr = array[1..9] of Integer; var a: array [1..9] of integer; i, N , min, max, minN, maxN : integer; function SS(x: inArr; N: integer): inArr; begin for i := low(x) to high(x) do begin if (i < N) then x[i]:=x[i] else if(i<9) then x[i] := x[i+1] else x[i]:=0; end; writeln(); writeln('N = ',N); result := x; end; begin min := 1; max := 100; minN := 1; maxN := 9; randomize(); for i := 1 to 9 do a[i] := random(max - min + 1) + min; N := random(maxN - minN + 1) + minN; for i := low(a) to high(a) do //цикл вывода на экран начального массива write(a[i], ' '); writeln(); a := SS(a,N); // переопределяем массив возвращеннным for i := low(a) to high(a) do // цикл вывода нового массива write(a[i], ' '); writeln(); readln(); end.
- Log in to post comments
- 2180 reads
vedro-compota
Sun, 08/08/2021 - 13:06
Permalink
стараемся выполнить сдвиг без
стараемся выполнить сдвиг без создания дополнительного массива
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 08/08/2021 - 23:12
Permalink
RE
Исправил вверху (был неполный тестовый вариант)
vedro-compota
Sun, 09/05/2021 - 13:25
Permalink
1)
1)
- можно просто ничего не делать в этой ситуации, а для этого лучше всего начать перебор цикла с другого значения
2)
последний элемент лучше затереть после цикла
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 09/06/2021 - 18:20
Permalink
RE
vedro-compota
Wed, 09/08/2021 - 20:06
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)