Задача 13 Урок 15
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 myArr = array[1..5] of integer; myArr2 = array[1..3] of integer; var a: myArr; b: myArr2; min, max, i : integer; procedure sdvig(var a : myArr; n:integer); var i : integer; begin i := 1; while i <= high(a) do if a[i] = n then for i := i to high(a) do a[i] := a[i+1] else i += 1; end; begin randomize(); min := 1; max := 15; for i:=low(a) to high(a) do a[i] := min + random(max - min + 1); write('one massiv '); for i := low(a) to high(a) do write(a[i], ' '); writeln; write('two massiv '); for i := low(b) to high(b) do read(b[i]); writeln; for i := low(b) to high(b) do sdvig(a, b[i]); write('Posle:'); for i := low(a) to high(a) do write(a[i], ' '); writeln; write('End'); readln();readln(); end.
Вывод консоли:
one massiv 7 14 5 4 11 two massiv 14 5 1 Posle:7 4 11 0 0
- Log in to post comments
- 162 reads