{$mode objfpc} unit search; interface // ---------- линейный поиск ---------------- Const N=10; type TArray=array[0..N-1] of integer; function SearchLineOne(Const A:TArray; X:integer):integer; function SearchLineMulti(Const A:TArray; X:integer; var Found:TArray):integer; type TDynArray=array of pointer; TIndexArray=array of integer; TestFunctionLine=function(element:pointer):boolean; function SearchLineOneDyn(Const A:TDynArray; test:TestFunctionLine):integer; function SearchLineMultiDyn(Const A:TDynArray; test:TestFunctionLine):TIndexArray; // ---------- бинарный поиск ---------------- Function SearchBinOne(Const A:TArray; X:integer):integer; Function SearchBinMulti(Const A:TArray; X:integer; var LeftBound,RightBound:integer):boolean; type TestFunctionBin=function(element:pointer):integer; function SearchBinOneDyn(Const A:TDynArray; test:TestFunctionBin):integer; function SearchBinMultiDyn(Const A:TDynArray; test:TestFunctionBin; var LeftBound,RightBound:integer):boolean; implementation function SearchLineOne(Const A:TArray; X:integer):integer; begin // код из лекций end; function SearchLineMulti(Const A:TArray; X:integer; var Found:TArray):integer; begin // код из лекций end; function SearchLineOneDyn(Const A:TDynArray; test:TestFunctionLine):integer; begin // ----------------- домашнее задание --------------------- end; function SearchLineMultiDyn(Const A:TDynArray; test:TestFunctionLine):TIndexArray; begin // код из лекций end; Function SearchBinOne(Const A:TArray; X:integer):integer; begin // код из лекций end; Function SearchBinMulti(Const A:TArray; X:integer; var LeftBound,RightBound:integer):boolean; begin // код из лекций end; function SearchBinOneDyn(Const A:TDynArray; test:TestFunctionBin):integer; begin // ----------------- домашнее задание --------------------- end; function SearchBinMultiDyn(Const A:TDynArray; test:TestFunctionBin; var LeftBound,RightBound:integer):boolean; begin // ----------------- домашнее задание --------------------- end; end.