Урок 15 Задача 12
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 m: newArr; // основной массив n: array[1..3] of integer; // массив для ввода трех чисел i, h: 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 write ('Исходный массив: '); randomize(); for i:= low(m) to high(m) do // обходим осн. массив для присваив-я случайных значений begin m[i] := random(9) + 1; write (m[i], ' '); end; writeln (); writeln ('Числа пользователя:'); for h:= low(n) to high(n) do // обходим массив для ввода трех значений readln (n[h]); for h:= low(n) to high(n) do // внешний цикл, массив из трех введенных значений for i:= low(m) to high(m) do // вложенный цикл, основной массив while n[h] = m[i] do // еще вложенный цикл, работает, пока эл-ты массивов равны shiftArr (m, i); // передаем в процедуру осн. массив и номер эл-та осн. массива write ('Ответ: '); for i:= low(m) to high(m) do // обходим смещенный осн. массив write (m[i], ' '); // выводим элементы на экран readln (); end.
Вывод в консоли:
Исходный массив: 3 9 8 9 4 Числа пользователя: 3 8 4 Ответ: 9 9 0 0 0
Исходный массив: 6 3 2 1 1 Числа пользователя: 5 7 1 Ответ: 6 3 2 0 0
- Log in to post comments
- 470 reads
vedro-compota
Sun, 11/27/2022 - 13:24
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)