Схема алгоритма двоичного поиска
First - адрес начала просматриваемой части.
Last - адрес конца просматриваемой части
Текст программы
Uses crt;
VarX:array[1..10000] of integer;
isk,i,n,adr,First,Last:integer;
Begin
write(' Введите число элементов в массиве - n '); readln(n);
write(' Введите элементы массива Х '); for i:=1 to n do read(X[i]); writeln;
write(' Введите искомое число'); readln(isk);
First:=1; Last:=n;
while First <= Last do
begin
adr:=(First+Last) div 2;
if isk=X[adr] then begin writeln('Yes! isk = ',isk,' adr = ',adr); exit; end;
else if isk<X[adr] then Last:=adr-1
else First:=adr+1;
end;
writeln(' Not found');
End.
Типовое задание
Разработать алгоритмы и программы решения задачи поиска в массиве упорядоченных записей из ЛПР№14 по заданным полям, с использованием алгоритмов линейного и двоичного поиска.
Варианты самостоятельных заданий
В а р и а н т 1
Список упорядочен по возрастанию года издания.
Разработать алгоритмы и программы линейного поиска всех книг, изданных до 1960 года и двоичного поиска в 1965 с выводом найденных записей на экран.
В а р и а н т 2
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного поиска всех товаров, имеющих цену меньше 20000 руб. и двоичного поиска 30000 руб. с выводом найденных записей на экран.
В а р и а н т 3
Список упорядочен по наименованию пунктов отправления (по алфавиту).
Разработать алгоритмы и программы линейного поиска рейсов, вылетающих из всех пунктов, наименование которых начинается с буквы "К" и двоичного поиска с буквы "А" с выводом найденных записей на экран.
В а р и а н т 4
Список упорядочен по возрастанию года рождения.
Разработать алгоритмы и программы линейного поиска всех граждан из списка, родившихся до 1950 года и двоичного поиска в 1952 с выводом найденных записей на экран.
В а р и а н т 5
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного поиска и двоичного поиска всех товаров, цена которых не превышает 15000 руб., и двоичного поиска товара, цена которого равна 15600 руб. с выводом найденных записей на экран.
В а р и а н т 6
Список упорядочен по убыванию года рождения.
Разработать алгоритмы и программы линейного поиска всех студентов, родившихся до 1979 года и двоичного поиска в 1980 с выводом найденных записей на экран.
В а р и а н т 7
Список упорядочен по убыванию года издания.
Разработать алгоритмы и программы линейного поиска книг, изданных до 1990 года и двоичного в 1999 с выводом найденных записей на экран.
В а р и а н т 8
Список упорядочен по возрастанию года издания.
Разработать алгоритмы и программы линейного поиска книг, изданных после 2004 года и двоичного в 2000 с выводом найденных записей на экран.
В а р и а н т 9
Список упорядочен по возрастанию номеров рейсов.
Разработать алгоритмы и программы линейного поиска всех рейсов с номерами большими, чем 50 и двоичного с номером 38 с выводом найденных записей на экран.
В а р и а н т 10
Список упорядочен оп убыванию года рождения.
Разработать алгоритмы и программы линейного поиск всех граждан, родившихся до 1970 года и двоичного в 1979 с выводом найденных записей на экран.
В а р и а н т 11
Список упорядочен по убыванию года издания.
Разработать алгоритмы и программы линейного поиска книг, изданных до 1950 и двоичного в 1960 году с выводом найденных записей на экран.
В а р и а н т 12
Список упорядочен по возрастанию цены.
Разработать алгоритмы и программы линейного поиска товаров, имеющих цену не меньше 20000 руб. и двоичного равную 30000 с выводом найденных записей на экран.
В а р и а н т 13
Список упорядочен по полю "Пункт назначения" (по алфавиту).
Разработать алгоритмы и программы линейного поиска рейсов, вылетающих в города, начинающиеся с буквы "В", и двоичного с "С", с выводом найденных записей на экран.
В а р и а н т 14
Список упорядочен по убыванию года рождения.
Разработать алгоритмы и программы линейного поиска всех граждан из списка, родившихся до 1980 года и двоичного в 1990 с выводом найденных записей на экран.
В а р и а н т 15
Список упорядочен по возрастанию цены.
Разработать алгоритмы и программы линейного поиска всех товаров, имеющих цену, не меньше 25000 руб. и двоичного равных 20000 с выводом найденных записей на экран.
В а р и а н т 16
Список упорядочен по убыванию года рождения.
Разработать алгоритмы и программы линейного поиска всех студентов, родившихся до 1989 года и двоичного в 1990 с выводом найденных записей на экран.
В а р и а н т 17
Список упорядочен по возрастанию года издания.
Разработать алгоритмы и программы линейного поиска книг, изданных после 1990 года и двоичного в 1987 с выводом найденных записей на экран.
В а р и а н т 18
Список упорядочен по полю "Шифр" (по алфавиту).
Разработать алгоритмы и программы линейного поиска книг, поле шифр которых начинаются с буквы " Т" и двоичного с буквы " Р" с выводом найденных записей на экран.
В а р и а н т 19
Список упорядочен по убыванию номеров рейсов.
Разработать алгоритмы и программы линейного поиска всех рейсов с номерами меньшими, чем 100 и двоичного равных 110 с выводом найденных записей на экран.
В а р и а н т 20
Список упорядочен по возрастанию года рождения.
Разработать алгоритмы и программы линейного поиска всех граждан, родившихся после 1970 г. и двоичного в 1967 с выводом найденных записей на экран.
В а р и а н т 21
Список упорядочен по возрастанию года издания.
Разработать алгоритмы и программы линейного поиска всех книг, изданных после 2001 года и двоичного в 1996 с выводом найденных записей на экран.
В а р и а н т 22
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного поиска всех товаров, имеющих цену больше 100 руб. и двоичного равную 50 с выводом найденных записей на экран.
В а р и а н т 23
Список упорядочен по наименованию пунктов отправления (по алфавиту).
Разработать алгоритмы и программы линейного поиска рейсов, вылетающих из всех пунктов, наименование которых начинается с буквы "В" и двоичного с буквы "Л" с выводом найденных записей на экран.
В а р и а н т 24
Список упорядочен по возрастанию года рождения.
Разработать алгоритмы и программы линейного поиска всех граждан из списка, родившихся после 1977 года и двоичного в 1975 с выводом найденных записей на экран.
В а р и а н т 25
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного поиска всех товаров, цена которых превышает 30 руб., и двоичного равной 40 с выводом найденных записей на экран.
В а р и а н т 26
Список упорядочен по убыванию года рождения.
Разработать алгоритмы и программы линейного поиска всех студентов, родившихся после 1990 года и двоичного в 1985 с выводом найденных записей на экран.
В а р и а н т 27
Список упорядочен по убыванию года издания.
Разработать алгоритмы и программы линейного поиска книг, изданных после 2000 года и двоичного в 1996 с выводом найденных записей на экран.
ЛИТЕРАТУРА
- Игошина Л.В. Методическое пособиепо курсу "Алгоритмические языки и программирование" . - Пенза: ПГТУ, 1999г.
- Могилев Л.В. и др. Практикум по информатике. - М.: «Академия», 2005г.
- Иллюстрированный самоучитель по Turbo Pascal. – http://pascal.sources.ru/