Срочно! 10 класс, паскаль
Напишите алгоритм линейного поиска, если стоит задача найти место последнего элемента в массиве, соответствующего заданному условию.
Ответы
function find_last_match(array: array of integer; condition: function(x: integer): boolean): integer;
begin
// Индекс последнего элемента, соответствующего условию.
var
index: integer;
// Начинается с конца массива.
index := length(array) - 1;
// Итеративно проверяет элементы массива, начиная с последнего.
while index >= 0 do begin
// Если текущий элемент удовлетворяет условию, возвращает его индекс.
if condition(array[index]) then
exit;
// Переходит к следующему элементу.
index := index - 1;
end;
// Если все элементы массива проверены и ни один из них не удовлетворяет условию, возвращает -1.
return -1;
end;
пример использования:
function is_even(x: integer): boolean;
begin
return x mod 2 = 0;
end;
var
array: array of integer = [1, 2, 3, 4, 5];
index: integer;
begin
index := find_last_match(array, is_even);
writeln(index);
end;