Урок 15. Задача 11.
Primary tabs
Пусть есть процедура, которая умеет сдвигать массив влево на 1 элемент, начиная с указанного символа (устанавливая последний элемент равным нулю):
type newArr = array [1..5] of 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;Задача: У вас есть исходный массив случайных целых чисел из 5 элементов. Пользователь вводит три числа целых числа, сохраните их во второй массив и затем проведите сдвиг элементов исходного массива, для каждого случая их совпадения с элементами из второго массива, для сдвига используйте процедуру shiftArr().
type newArr = array [1..5] of integer;
var i, a, b, c : integer;
Arr : array [1..3] of integer;
fl : boolean;
Arr_New : newArr;
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
Arr_New[i] := random(9) + 1;
write(Arr_New[i], ' ');
end;
writeln();
for i := 1 to 3 do
begin
write('Enter ');
readln(a);
Arr[i] := a;
end;
for a := low(Arr) to high(Arr) do
begin
for b := low(Arr_New) to high(Arr_New) do
if Arr[a] = Arr_New[b] then
begin
if Arr_New[b] = Arr_New[b + 1] then
shiftArr(Arr_New, b);
shiftArr(Arr_New, b);
end;
end;
for i := low(Arr_New) to high(Arr_New) do // вывод массива
write(Arr_New[i], ' ');
readln();
end.
- Log in to post comments
- 912 reads
vedro-compota
Sat, 06/25/2022 - 20:46
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)