![]() |
|
|
![]()
|
|
| Гость_Lena |
|
|||
|
Unregistered |
программа на делфи:
Procedure InitLin (Var T: Array of integer; M:integer); begin Setlenght(T,M); For M:=High(T) downto 0 do T[M]:=MaxInt end; Function Hesh (M,K:cardinal;d:extended=0.618033988748948482):cardinal; begin Hesh:=Trunc(M*Frac(K*d)) end; Function VstLin (Var T: Array of integer; Const K: integer):integer; Var j,i:integer; begin Result:=-1; i:=Hesh(Lenght(T),K); j:=i; Repeat if T[j]:=MaxInt then begin T[j]:=K; Exit end; if T[j]=K then begin Result:=j; Exit end; Dec(j); if j<0 then j:=j+Lenght(T) Until j:=i; Result:=MaxInt; end; Procedure TForm.Button1Click(Senger:TObject); Var i,j,K:integer; T: Array of integer; s,s1:string; begin s1:=";s:="; Memo1.Clear; InitLin(T,40); RandSeed:=Round(Pi*5E8); For j:=1to 100 do begin K:=Random(40); i:=VstLin(T,K); if i=MaxInt then begin Memo1.Lines.Add('Переполнение'); Break end; if i>=0 then begin if s='' then begin Memo1.Lines.Add(s1); s1:='';s:='Повтор' end; s:=s+IntToStr(K)+'' end Else bgin if s1=" then begin if s<>" then Memo1.Lines.Add(s); s:=''; s1"='Вставленны:' end; s1:=s1+IntToStr(k)+'' end; end; s:=s+s1; Memo1.Lines.Add(s); T:=Nil; end; |
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Попробуй так:
файл Unit1.cpp
все должно получиться!!! |
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
Спасибочки тебе ГроМАдНОе!!!!!!
Она и вправду идет!!!! Слушай ,а как перевезти вот эту процедурку!!! это в случае строк-ключей. Мне вообще-то нужно будет эту процедурку вставить вместо Hesh, но тогда МAXINT (обозначаю свободные позиции таблицы) нужно будет заменить на что то другое !! а на что??
|
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
tigger пожалуйста!!!
|
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Я про тебя не забыл, но сам понимаешь праздник....
|
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
Ясненько....
tigger,Вообще-то я девушка... |
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Oops! Приятная неожиданность, случайно не Лена?
А вот и сам код: попробуй должно получиться вроде бы протестировал, вставь этот код в Unit1.cpp
насчет MaxInt: при инициализации InitLin у тебя массив Т должен состоять из строк наверное а не из чисел если так то задай их строками которые наверняка никогда не получатся в ходе работы проги например "-1-1-1-1-1" это и будет признак пустой строки. Если что-то не так поправь. Если не секрет поподробнее опиши что делает программа? Пока пиши... |
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
Программа т.е. лаба на тему информационный поиск. Построение хеш-таблицы с ключами -строками и линейным опробованием позиций при поиске. Добавлено @ 16:30 tigger, СПАСИБО БОЛЬШОЕ ЗА ПОМОЩЬ!!!!!!! |
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
tigger, а что делает вторая кнопка?
|
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Да это я просто вставил ее для тестирования функции можешь ее убрать.
|
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
tigger, ты представляешь...у меня препод вообще!!!!
ему теперь нужно чтобы таблица заполнялась на 80% ....а потом посторить ГРАФИК!!!! кошмар! ...лучше сдохнуть щас!!! |
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Он тебя доканать решил,
напиши поподробней чего ему надо. Да и что за ВУЗ то? |
|||
|
||||
| label |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
Если бы я тока поняла ,что ему нужно!!! Я его с первого раза плохо понимаю...ну все же нужно увеличить размер таблицы, т.е. 40 ...а гораздо больше . потом сказал нужно замолнить таблицу на 80% ..значит в функцию VstLin поставить еще один параметр счетчик,наверное так...
и потом в кнопочке втавить цикл , типа если l меньше 80% от заполнение таблице то долже выполнять, что есть в кнопке... потом в кнопочку поставить функцию
...но копмилятор выдает ошибку, и зачем эта функия я так и не поняла...!!! и короче это все для того что построить графики : длина и время зависят от коэфицента заполнения таблицы a=n/M, М-размер таблицы , n- текущее число записей в поисковой структуре. График неуспешного поиска, нелинейный рост длины поиска при увеличении коэфицента я знаю как выглядет, но это не совсем радует!! P.S. учусь в МЭИ |
||||
|
|||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Привет, как успехи?!?
Ошибка в функции Vs: переменная К задана как const следовательно ее значение изменить нельзя, а у тебя K = K недопустимо так делать и вообще в чем смысл этого присваивания? И где именно в проге идет вызов VS, в той же кнопке1. Насчет счетчика передай его по ссылке... твой вариант я не смог запустить:
Пиши... |
|||
|
||||
| label |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.5.2005 Репутация: нет Всего: нет |
Приветик!
Я тут подумала и решила , что мне нужна процедура неуспешного поиска элемента в хеше. А потом я буду искать этот элемент при заполнении таблицы с 10% до 80%...а на основе потом данных я и построю график. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |