Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Алгоритм 13. Поиск заданного элемента в упорядоченном по возрастанию массиве.






Нужно в массиве М определить индекс C элемента равного заданному K.

Идея: заданное число K сравнивается со средним элементом в массиве M, индекс которого C = (A+B)/2, где A и B нижняя и верхняя границы индексов в точках A =1 B=N.

Если M(C) ≠ K, то далее поиск идет в одной из половин массива M(C) в зависимости от результатов сравнения. Для этого изменяется значение или A на (C+1), или B на (C-1). Затем K сравнивается со средним элементом в соответствующей половине и т.д.

A = 1: B = N: L = 0

20 IF B < A GOTO 90

C = INT((A+B)/2)

IF M(C) = K GOTO 80

IF M(C) > K GOTO 70

A = C+1: GOTO20

70 B = C-1: GOTO 20

80 L = 1: B = A-1: GOTO 20

90 RETURN

 

 

Задача 3.

Вводится информация о 6-ти отелях с количеством посадочных мест в ресторане в каждом. Вывести название отеля с максимальным количеством посадочных мест в ресторане.

Описание алгоритма:

1. объявляем два массива: массив названий отелей NO$(6) и массив количеств посадочных мест в ресторанах в каждом K(6);

2. переменной Кmax присваиваем начальное значение, которое д.б. заведомо меньше самого малого среди заданных (в данном случае возьмем –1);

3. открываем цикл, в котором:

§ вводим название отеля и количество мест в нем;

§ ищем максимальное количество Кmax и его индекс imax, сравнивая в каждом цикле введенное значение К с Кmax - если K(g)> Kmax, то Kmax присваивается значение K(g), а его индексу gmax значение g;

§ цикл будет выполняться 6 раз;

4. после завершения цикла выводится результат - ”Максимальное количество посадочных мест ” Kmax “ в отеле ” NO$(gmax)

 

 

 
 

 

 


Рис.11. Блок-схема алгоритма решения задачи 3.

 

Программа

Dim NO$(6), K(6)

Kmax= -1

For g=1 To 6

Input “Отель, кол-во мест”, NO$(g), K(g)

If K(g)> Kmax Then Kmax=K(g): gmax=g

Next

Print”Максимальное количество посадочных мест ”, Kmax, “ в отеле ”, NO$(gmax)

End

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал