Program DemoSearch_2;
Uses Crt;
Const
Maximum=100;{максимальное значение элементов массива}
Type
DataType=Integer;
DataIn=array [1..Maximum] of Integer;{пользовательский тип DataIn, который обозначает массив из элементов типа Integer}
Var
WorkArray:DataIn;{объявляем массив типа DataIn}
i:Byte;
{Объявляем функцию Poisk2, у которой 3 формальных параметра:
1-массив, 2-количество элементов массива, 3-ключ поиска}
Function Poisk2(Vx:DataIn;N:Integer;K1:DataType):Integer;
{Poisk2}
Var
L,U,Middle:Integer;
Rez:Boolean;
j:Integer;
begin
L:=1;
U:=N;
Rez:=False;
While (L<=U) and (not Rez) do
begin
{Средний элемент массива}
Middle:=(L+U)div 2;
{если ключ меньше среднего элемента массива, то поиск происходит в правой оставшейся части массива}
If K1<Vx[Middle] then U:=Middle-1
else
If K1>Vx[Middle] then L:=Middle+1
else
Rez:=True;
end;
If Rez=True then Poisk2:=Middle
else
Poisk2:=0;
end;{Poisk2}
{Основная программа}
Begin
ClrScr;
for i:=1 to 10 do
begin
writeln('Введите ',i,'-й элемент массива');
readln(WorkArray[i]);
end;
Case Poisk2(WorkArray,10,6) of
0:Writeln('Такого значения нет')
else
Writeln('Впервые цифра 6 появилась под номером',Poisk2(WorkArray,10,6));
end;
repeat until keypressed;
End.
Порядок выполнения работы
1. Изучить теоретические сведения по теме “Алгоритм бинарного поиска”.
|
|
2. Получить у преподавателя индивидуальное задание и разработать программу по заданному варианту.
3. Показать работающую программу преподавателю.
4. Ответить на контрольные вопросы.
Контрольные вопросы
1. Основные понятия поиска данных.
2. Различные методы поиска данных. Краткое описание алгоритмов.
3. Бинарный поиск. Описание алгоритма и пример программы.
Лабораторная работа № 18
Реализация алгоритмов сортировок включением и выбором при написании программы на Паскале
Цель работы: формирование знаний и умений по изучению методов внутренних сортировок. Приобретение навыков реализации алгоритмов сортировки.