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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 16:12   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Минимизация автомата Распознавателя

Добрый день!)
Есть автомат распознаватель,он работает все делает по заданию,а как сделать минимизацию в нём?)есть ли возможность в этой программе добавить функции минимизации(это курс Теории Автоматов и Формальных языков,дискретная математика)

Код:
uses
  graphabc;
 
procedure Graf;
begin
  pen.Color := clblack;
  textout(200, 20, 'Детерминированный автомат');
  line(250, 50, 250, 260);
  line(300, 50, 300, 260);
  line(350, 50, 350, 260);
  
  line(200, 80, 350, 80);
  line(200, 110, 350, 110);
  line(200, 140, 350, 140);
  line(200, 170, 350, 170);
  line(200, 200, 350, 200);
  line(200, 230, 350, 230);
  line(200, 260, 350, 260);
  
  textout(270, 60, '0');
  textout(320, 60, '1');
  
  textout(220, 90, 'A');
  textout(270, 90, 'B');
  textout(320, 90, 'D');
  
  textout(220, 120, 'B');
  textout(270, 120, 'C');
  textout(320, 120, 'E');
  
  textout(220, 150, 'C');
  textout(270, 150, 'F');
  textout(320, 150, 'A');
  
  textout(220, 180, 'D');
  textout(270, 180, 'D');
  textout(320, 180, 'E');
  
  textout(220, 210, 'E');
  textout(270, 210, 'F');
  textout(320, 210, 'B');
  
  textout(220, 240, 'F');
  textout(270, 240, 'D');
  textout(320, 240, 'C');
  
  pen.Color := clgreen;
  drawcircle(223, 158, 10); 
  drawcircle(223, 246, 10); 
end;
 
procedure Preob;
var
  s: array [1..10] of integer;
  n, m, i: integer;
  s1: string;
 
begin
  write('Введите размер цепочки');
  readln(m);
  writeln();
  
  write('Введите символы 0 или 1');
  for i := 1 to m do
  begin
    read(n);
    s[i] := n;
  end;
  writeln();
  
  writeln('Исходная цепочка');
  for i := 1 to m do
    write(s[i]);
  
  s1 := 'A';
  for i := 1 to m do
    
    case s1[i] of   
      'A': 
        begin
          if s[i] = 0 then
            s1 += 'B'
          else
            s1 += 'D';
        end;
      'B':
        begin
          if s[i] = 0 then
            s1 += 'C'
          else
            s1 += 'E';
        end;
      'C':
        begin
          if s[i] = 0 then
            s1 += 'F'
          else
            s1 += 'A';
        end;
      'D':
        begin
          if s[i] = 0 then
            s1 += 'D'
          else
            s1 += 'E';
        end;
      'E':
        begin
          if s[i] = 0 then
            s1 += 'F'
          else
            s1 += 'B';
        end;
      'F': 
        begin
          if s[i] = 0 then
            s1 += 'D'
          else
            s1 += 'C';
        end;
    end;
  
  writeln();
  writeln('Результат работы автомата');
  for i := 2 to m + 1 do 
    write(s1[i]);
  writeln();
  
  if (s1[m + 1] = 'C') or (s1[m + 1] = 'F') then
    writeln('Автомат допускает цепочку')
  else
    writeln('Автомат не допускает цепочку');
end;
 
begin
  Graf;
  Preob;
end.
Otar4ik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение клеточного автомата в Excel olgafirst Помощь студентам 0 02.04.2014 00:26
минимизация конечного автомата deen812 Помощь студентам 1 06.06.2013 20:52
Матрица смежности конечного автомата MooNDeaR Помощь студентам 3 01.04.2012 17:22
Реализация конечного автомата на с++ AnRo Помощь студентам 0 17.11.2010 13:49
Графическое представление автомата Rybachok Общие вопросы C/C++ 2 05.11.2010 00:25