Урок 15 задача 11(новая)
Primary tabs
Урок 15 задача 11 (новая задача)
Пусть есть процедура, которая умеет сдвигать массив влево на 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 project1; type newArr = array [1..5] of integer; type newArr1 = array [1..3] of integer; var numArr: newArr; usrArr: newArr1; i: 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; function unicalArr(var promArr:newArr; promArr1:newArr1):newArr; var x,y:integer; begin for x := 1 to 3 do for y := 1 to 5 do begin if((promArr1[x]=promArr[y]))then begin shiftArr(numArr,y); end; result:=promArr; end; end; begin for i:=1 to 3 do begin write('Введите ',i,' элемент массива: '); readln(usrArr[i]); end; writeln(); for i:=1 to 5 do begin write('Введите ',i,' элемент массива: '); readln(numArr[i]); end; writeln(); unicalArr(numArr,usrArr); for i:=1 to 5 do begin write(numArr[i],'|'); end; readln(); end.
- Log in to post comments
- 1452 reads
vedro-compota
Wed, 03/23/2022 - 20:13
Permalink
function unicalArr(var
1)
-- result нет смысла присваивать каждый раз в цикле
2)
-- нужно возвращать значение (для чего функция и нужна) или обработывать по ссылке (случай с процедурой)
_____________
матфак вгу и остальная классика =)
alexander263
Sat, 03/26/2022 - 17:30
Permalink
Исправлено
vedro-compota
Sat, 03/26/2022 - 20:16
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)