Задача 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().
Пример 1: Исходный массив: 1 5 6 8 9 Числа пользователя: 2 4 5 Ответ: 1 6 8 9 0Пример 2: Исходный массив: 1 5 6 8 9 Числа пользователя: 8 4 6 Ответ: 1 5 9 0 0Пример 3: Исходный массив: 1 5 6 5 9 Числа пользователя: 5 4 6 Ответ: 1 9 0 0 0
program u15z13; type newArr = array [1..5] of integer; var i,z,b:integer; n:newArr; d: array [1..3] 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; begin randomize(); for i:=low(n) to high(n) do //заполняем массив случайными числами begin n[i] :=random(10); write(n[i],' '); end; writeln(); writeln('vvedite 3 chicla'); //вводим 3 числа for z:=low(d) to high(d) do readln(d[z]); for i:=low(n) to high(n) do //сравниваем числа begin b:=1; while (b<=3) do begin if (d[b]=n[i]) and (d[b]>0) then //если без проверки то при вводе 0 вечный цикл begin shiftArr (n,i); end else b:=b+1; end; end; for i:=low(n) to high(n) do //выводим полученный массив write(n[i], ' '); readln; end.
- Log in to post comments
- 219 reads