Задача 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|Примечание: операции сдвига элементов массива оформите в виде подпрограммы.
program zadacha8;
var a: array [1..9] of integer;
i, n: integer;
procedure sdvig(m: integer; var b: array of integer);
var j:integer;
begin
for j:=1 to 9 do
if j >= m then
b[j-1]:=b[j];
end;
begin
randomize();
for i:=low(a) to high(a) do
begin
a[i] := -1000 + random(2001);
write(a[i],' ');
end;
writeln();
n := random(8)+1;
writeln(n);
sdvig(n,a);
for i:=low(a) to high(a) do
write(a[i], ' ');
readln();
end.Консоль
583 -351 -118 -280 942 -519 505 -493 -398 6 583 -351 -118 -280 942 505 -493 -398 0
- Log in to post comments
- 1835 reads
vedro-compota
Wed, 01/12/2022 - 20:07
Permalink
for j:=1 to 9 do
-- можно уменьшить число итераций и уйти от if
_____________
матфак вгу и остальная классика =)
Denisyndi
Sun, 01/23/2022 - 22:01
Permalink
Решение без if
program zadacha8; var a: array [1..9] of integer; i, n: integer; procedure sdvig(m: integer; var b: array of integer); var j:integer; begin for j:=m to 9 do b[j-1]:=b[j]; end; begin randomize(); for i:=low(a) to high(a) do begin a[i] := -1000 + random(2001); write(a[i],' '); end; writeln(); n := random(8)+1; writeln(n); sdvig(n,a); for i:=low(a) to high(a) do write(a[i], ' '); readln(); end.vedro-compota
Wed, 02/02/2022 - 20:35
Permalink
for j:=m to 9 do
-- сдвиг не по задаче + забыли заполнить "то что справа нулями"
_____________
матфак вгу и остальная классика =)