Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 22:11   #11
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Decision Tree C# Implementation (Example)
http://ID3 Algorithm at Wiki
WinForms Sample: DecisionTrees

Последний раз редактировалось akasex; 06.05.2010 в 22:16.
akasex вне форума Ответить с цитированием
Старый 06.05.2010, 23:06   #12
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
По умолчанию

изначально я имела в виду как бы ручное создание дерева ) создаю корень. иду по одной ветке, создаю там узел. говорю, что информационному полю будет присвоенно значение 6-ого вопроса, потом иду дальше и также говорю, какой вопрос в каком узле должен быть... теперь понимаю, что это глупость )
спасибо за ссылки. очень хорошие, только я что-то не могу это на Delpi перевести )
а можно еще спросить?
могу я сделать так: организовать корень. потом идти по левой ветке до конца, при этом запоминая в массив указатели на правые. заполнив левую ветвь до конца, вернуться с помощью указателя в массиве и пройти по правой. а там опять заполнять левую и т.д.?
Сурка вне форума Ответить с цитированием
Старый 06.05.2010, 23:27   #13
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Цитата:
Сообщение от Сурка Посмотреть сообщение
организовать корень. потом идти по левой ветке до конца, при этом запоминая в массив указатели на правые. заполнив левую ветвь до конца, вернуться с помощью указателя в массиве и пройти по правой. а там опять заполнять левую и т.д.?
думаю да....
akasex вне форума Ответить с цитированием
Старый 06.05.2010, 23:55   #14
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
По умолчанию

спасибо Вам большое!
Сурка вне форума Ответить с цитированием
Старый 07.05.2010, 16:24   #15
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
По умолчанию

а можно еще спросить?
вот отрывок процедуры. как быть с label1.caption?
Код:
procedure sozdanie;
begin
if u=nil then
begin
  new (u);
  poisk_voprosa;
  u^.d:= str;
  u^.left:=nil;
  u^.right:=nil;
end
else
begin
x:=u;
  while x^.left <> nil do
  x:=x^.left;
  new (x^.left);
  x:=x^.left;
  poisk_voprosa;
  u^.d:= str;
  u^.left:=nil;
  u^.right:=nil;
  a[i]:=x;
  inc (i);
end;   // тут я потом определю, пуста label1 или нет
if label1.caption = '' then sozdanie;
end;

Последний раз редактировалось Сурка; 07.05.2010 в 16:38.
Сурка вне форума Ответить с цитированием
Старый 07.05.2010, 17:22   #16
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

в дельфи не силен...что именно не получается ???
akasex вне форума Ответить с цитированием
Старый 07.05.2010, 20:01   #17
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
По умолчанию

извините, с этим разобралась. была ошибка синтаксиса )
но теперь возникла новая проблема. вот код:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
if u=nil then
begin
  new (u);
  poisk_voprosa;
  u^.d:= str;
  u^.left:=nil;
  u^.right:=nil;
  a[i]:=x;
  inc (i);
end;
x:=u;
  while x^.left <> nil do
  x:=x^.left;
  new (x^.left);
  x:=x^.left;
  poisk_voprosa;
  x^.d:= str;
  x^.left:=nil;
  x^.right:=nil;
  if (x^.d <> 'квадрат') and (x^.d <> 'треугольник') and (x^.d <> 'круг')
  and (x^.d <> 'ромб') then
  begin
  a[i]:=x;
  inc (i);
  end;
  if (x^.d = 'квадрат') or (x^.d = 'треугольник') or (x^.d = 'круг')
  or (x^.d = 'ромб') then
  begin
  x:=a[j];
  inc(j);
  new (x^.right);
  x:=x^.right;
  poisk_voprosa; // процедура поиска вопроса в файле
  x^.d:= str;
  x^.left:=nil;
  x^.right:=nil;
  a[i]:=x;
  inc (i);
  FormCreate(Sender);
  end
  else FormCreate(Sender);
end;
это просто сырая чисто пробная процедура.
сначала я создаю, как и хотела, левую ветку, а указатели на узлы записываю в массив, чтобы потом к ним поочередно вернуться и сделать правые ветви. проблема заключается в выделенном месте. а точнее: я создала целиком левую ветвь, указателю присвоила значение места, откуда должна начинаться правая ветвь, выделяю под узел память, а она не выделяется пишет: Access violation at address 00457299 in module 'Project1.exe'. Write of address 00000004. Почитала сейчас про ошибки, но так и не поняла, как ее исправить (
Сурка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Теория принятия решений Шушелла Помощь студентам 0 11.04.2010 13:47
Макрос - поиск решений. nazavrik Microsoft Office Excel 1 26.10.2009 17:06