![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Pangolin |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дано описание константы n и типа таблицы со строки типа MyRecord
Const n=30; Type MyRecord = Record Key: Integer; Name: String; End; Table = Array[1..n] Of MyRecord Считая, что в таблице записи имеют различные ключи, описать логическую функцию Found(T, K, H), определяющую, есть ли в таблице T (все записи которой уже упорядочены по возрастанию поля Кеу) запись со значением поля Key, равным K, и, если есть, присваивающую ее номер параметру H. Помогите.. Никак не пойму чего хотят... ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(Pangolin @ 14.06.2006 18:53) Никак не пойму чего хотят... Вот этого, наверное: function Found(var t: table; k: integer; var H: integer): boolean; Хотя, если записи упорядочены по возрастанию K, можно применить и другой алгоритм поиска, например бинарный... (Посмотри в поиске, klem4 как-то выкладывал реализацию...) |
Bill Gates |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Держи решение!
![]() Код function found(t:table;k:integer;var h:integer):boolean; var Lb,Ub:integer; begin found:=false; (***Будем использовать метод бинарного поиска для большей эффективности***) Lb:=1; Ub:=n; repeat H := (Lb+Ub)div 2; if k < t[H].key then Ub := H-1 else if k > t[H].key then Lb := H+1 else begin found:=true; break; end; until Lb > Ub; end; зы. Опоздал чуть-чуть... Зато метод поиска - бинарный! Сообщение отредактировано: Bill Gates - 14.06.2006 19:53 |
Pangolin |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эх... Спасибо огромное...
![]() Даже не ожидал, что так быстро помогут.... |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 4:39 |