Урок 15. Задача 8.
Primary tabs
Заполнить массив из 9 элементов случайными числами, далее получить случайное число N из диапазона от 1 до 9 и затем "удалить" элемент с позиции N из массива, "сдвинув" значения влево и заполнив все что справа нулями.
Примечание: операции сдвига элементов массива оформите в виде подпрограммы.
type ar = array[1..9] of integer;
var i, a : integer;
Arr : ar;
function shift(a_1 : integer; var Arr_2 : ar) : ar;
var i : integer;
fl : boolean;
begin
fl := true;
for i := 1 to 9 do
if fl and (a_1 <> i) then // запись массива до числа-ограничителя
Arr_2[i] := Arr_2[i]
else
begin // запись массива после числа-ограничителя
fl := false;
Arr_2[i] := Arr_2[i + 1];
end;
shift := Arr_2;
end;
begin
randomize;
for i := 1 to 9 do
begin
Arr[i] := random(9) + 1; // инициализация массива
a := Arr[5]; // захват случайного числа
end;
Arr := shift(a, Arr);
for i := 1 to 9 do // вывод измененного массива
write(Arr[i], ' ');
readln();
end.
- Log in to post comments
- 1620 reads
vedro-compota
Sat, 06/25/2022 - 20:38
Permalink
function shift(a_1 : integer;
-- зачем здесь массив передается по ссылке?
_____________
матфак вгу и остальная классика =)
Dennis80
Wed, 06/29/2022 - 09:59
Permalink
type ar = array[1..9] of
type ar = array[1..9] of integer; var i, a : integer; Arr : ar; function shift(a_1 : integer; Arr_2 : ar) : ar; var i : integer; fl : boolean; begin fl := true; for i := 1 to 9 do if fl and (a_1 <> i) then // запись массива до числа-ограничителя Arr_2[i] := Arr_2[i] else begin fl := false; if (a_1 = i) then // сдвиг массива в лево Arr_2[i] := Arr_2[i + 1]; Arr_2[i + 1] := 0; // запись массива после числа-ограничителя end; shift := Arr_2; end; begin randomize; for i := 1 to 9 do begin Arr[i] := random(9) + 1; // инициализация массива a := Arr[5]; // захват случайного числа end; for i := 1 to 9 do // вывод массива write(Arr[i], ' '); writeln(); Arr := shift(a, Arr); for i := 1 to 9 do // вывод измененного массива write(Arr[i], ' '); readln(); end.vedro-compota
Wed, 06/29/2022 - 20:18
Permalink
for i := 1 to 9 do
-- позиция уже известна на момент вызова функции, можно сразу начать сдвигать в цикле, начиная с указанного места
_____________
матфак вгу и остальная классика =)