• Предмет: Информатика
  • Автор: cherrylad5666
  • Вопрос задан 3 месяца назад

Срочно! 10 класс, паскаль
Напишите алгоритм линейного поиска, если стоит задача найти место последнего элемента в массиве, соответствующего заданному условию.

Ответы

Ответ дал: xboxlive4096
1

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;

Вас заинтересует