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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 23:21   #1
bes422
Новичок
Джуниор
 
Регистрация: 18.06.2011
Сообщений: 1
Печаль реализация Карт Карно Delphi

есть карты карно для 2-4 переменных, чтобы найти ДНФ для 2-х переменных я использую такой код:

Код:
...
  if SpinEdit1.Value=2 then
    begin
      for i:=1 to 2 do
      begin
        if StringGrid1.Cells[i,1]='1' then
          begin
            r1:=r1+1;
            if i=1 then r3:=1;
          end;
        if StringGrid1.Cells[i,2]='1' then
          begin
            r2:=r2+1;
            if i=1 then r4:=1;
          end;
        if StringGrid1.Cells[1,i]='1' then c1:=c1+1;
        if StringGrid1.Cells[2,i]='1' then c2:=c2+1;
      end;
        if (r1+r2)=4 then memo1.Lines[1]:=s+'""'
        else
        begin
          if r1=2 then ListBox1.Items.Add('|X1')
                   else if (r3=1)and(c2=1)and(r2=1) then ListBox1.Items.Add('|X1*|X2')
                                else if (c2=1)and(r2=1) then ListBox1.Items.Add('|X1*X2');
          if r2=2 then ListBox1.Items.Add('X1')
                  else if (r4=1)and(c1=1)and(r1=1) then ListBox1.Items.Add('X1*|X2')
                               else if (c1=1)and(r1=1) then ListBox1.Items.Add('X1*X2');
          if c1=2 then ListBox1.Items.Add('|X2') ;
          if c2=2 then ListBox1.Items.Add('X2') ;
        end;
    end ;
if ListBox1.Items.Count>0 then
  begin
      for i:=0 to ListBox1.Items.Count-1 do
         begin
            s1:= ListBox1.Items[i];
            if i>0 then s1:=s1+ '+' +ListBox1.Items[i-1];
         end;
  memo1.Lines.Insert(0,s+s1);
  end;
.....
этот алгоритм плох потому что нужно перебирать все варианты карты карно "вручную" что есть очень не удобным для 3 и 4 переменных.
Возможно ктото знает есть ли другой алгоритм который бы подходил для 2-4 переменных без тупого перебора всех вариантов?


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.06.2011 в 09:57.
bes422 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Карта Карно Nasik Помощь студентам 0 19.06.2010 02:52
Карта Карно для 2 и 3 переменных Nasik Помощь студентам 0 24.05.2010 11:54
Реализация многопоточностив Delphi BloodMaX Помощь студентам 3 20.03.2010 19:21
Построение карты Карно prusal Помощь студентам 2 13.05.2009 22:24
Реализация BlowFish на Delphi Unconnected Общие вопросы Delphi 2 19.02.2009 12:52