Написать функцию которая возвращает True, если есть пара чисел, которая удовлетворяет условие - Pascal
Формулировка задачи:
Есть массив:
Заполненный случайными числами от -32,768 до 32,767.
Нужно написать функцию которая возвращает True, если есть пара чисел, которая удовлетворяет условие:
Если такой пары нет, то False
Пример:
-7 + 7 = 0 - True
arr : array[1..1000] of Integer;
arr[i] + arr[j] = 0;
P. S: Тупо перебирать все пары нельзя, потому что массив может быть на большее количество значений и это будет не оптимальное решение.
Решение задачи: «Написать функцию которая возвращает True, если есть пара чисел, которая удовлетворяет условие»
textual
Листинг программы
function prot(const a: array of Integer): Boolean; var i, j: Integer; begin prot:=True; for i:=Low(a) to High(a) do for j:=i+1 to High(a) do if a[i]=-a[j] then Exit; prot:=False; end;
Объяснение кода листинга программы
- Объявляется функция
prot
с входным параметром массивом целых чиселa
и возвращаемым значением типа Boolean. - Объявляются переменные
i
иj
типа Integer. - Происходит присваивание значения
True
переменнойprot
, что является начальным предположением. - Начинается цикл: для каждого индекса
i
от начала массива (Low(a)
) до его конца (High(a)
), выполняется вложенный цикл:- В каждой итерации вложенного цикла значение
j
увеличивается на 1 относительно значенияi
. - Затем проверяется условие: если значение элемента массива с индексом
i
равно отрицательному значению элемента массива с индексомj
, то функция возвращает значениеTrue
и завершает свою работу.
- В каждой итерации вложенного цикла значение
- Если выход из функции не был выполнен внутри цикла, то функции присваивается значение
False
. - Конец функции.
Этот код проверяет наличие в массиве пары чисел, таких что одно число является отрицательным образом другого. Если такая пара существует, функция возвращает
True
. Если такой пары нет, то функция возвращаетFalse
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д