Сформировать одномерный массив размером K+N из двух упорядоченных одномерных массивов - Pascal
Формулировка задачи:
Из двух упорядоченных одномерных массивов (длины K и N) сформируйте одномерный массив размером K+N, упорядоченный так же, как исходные массивы.
Решение задачи: «Сформировать одномерный массив размером K+N из двух упорядоченных одномерных массивов»
textual
Листинг программы
type TLessFunc=function(a, b: Integer): Boolean; function IsLess(a, b: Integer): Boolean; far; begin IsLess:=a<b end; function IsMore(a, b: Integer): Boolean; far; begin IsMore:=a>b end; var less: TLessFunc; begin ... if a[1]<a[n] then less:=@IsLess else less:=@IsMore; ...
Объяснение кода листинга программы
- Объявляется новый тип
TLessFunc, представляющий собой функцию, принимающую два целых числа и возвращающую булево значение. - Объявляются две функции
IsLessиIsMore, которые будут использоваться в качестве функций сравнения. ФункцияIsLessвозвращаетTrue, если первый аргумент меньше второго, иначе возвращаетFalse. А функцияIsMoreвозвращаетTrue, если первый аргумент больше второго, иначе возвращаетFalse. - Объявляется переменная
lessс типомTLessFunc. - В зависимости от того, больше ли первый элемент массива
aчем последний элемент массиваa, переменнойlessприсваивается адрес функцииIsLessлибо функцииIsMore. - Происходит дальнейшая обработка кода, опущенная в данном фрагменте.