type TForm1 = class(TForm) Edit1: TEdit; Memo1: TMemo; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; i:integer; stroka,itogstr: string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Clear; stroka:=Edit1.text; for i:=1 to length(form1.Edit1.text) do begin if stroka[i]='1' then begin Memo1.Lines.Add('01'); end else begin Memo1.Lines.Add('0'); end; end;
end; procedure TForm1.Button2Click(Sender: TObject); begin itogstr:=''; Memo1.Clear; stroka:=Edit1.text; for i:=1 to length(form1.Edit1.text) do begin if stroka[i]='1' then begin itogstr:=itogstr+'01'; end else itogstr:=itogstr+'0'; end;
Memo1.Lines.Add(itogstr); end;
end.
При нажатии кнопки Button1 символы выводятся в столбик. При нажатии Button2 символы выводятся в строку. Контрольное задание №2
Решить задачу ВЫПОЛНИМОСТЬ Методом резолюций Робинсона. Дизъюнкты кодируются последовательностью чисел, например, 1,-2,4,-6. Эта последовательность задает следующий дизъюнкт: . В Вашем варианте будет представлено несколько дизъюнктов. Из п.А Вы выбираете метод и применяете его к Вашей задаче ВЫПОЛНИМОСТЬ. Вы должны показать работу метода по шагам с разъяснением.
Вариант 4. -1,-2,-3 -2,3 3,5 3, -5 -3, -4 5, 4
Решение:
D1 =¬x1 v ¬x2 v ¬x3; D2 =¬x2 v x3; D3=x3 v x5; D4= x3 v ¬x5; D5= ¬x3 v ¬x4; D6= x5; D7= x4.
D 1,2 = ¬x1 v ¬x2; D1,2;3 = ¬x1 v ¬x2 v x3 v x5; D1,2,3;4= ¬x1 v ¬x2 v x3; D1,2,3,4;5= ¬x1 v ¬x2 v ¬x4; D1,2,3,4,5;6= ¬x1 v ¬x2 v ¬x4 v x5; D1,2,3,4,5,6;7= ¬x1 v ¬x2 v x5.
если кого интересует могу скинуть на паскале прогу которая будет работать именно по вашим правилам машины тьюринга (по вашей таблице) так сказать универсальную, по ней можете проверить правильно составили свою таблицу или нет прога ничего хитрого не делает просто считывает текстовый файл, в котором записанны правила вашей машины, и по этим правилам обрабатывает текстовый файл где записанно входное слово, после того как она отработает, открываете файл и смотрите что стало с входным словом
Первое задание решено не совсем верно. Машина Тьюринга не может делать это:
if stroka[i]='1' then begin itogstr:=itogstr+'01'; end else itogstr:=itogstr+'0'; end;
Все что она "умеет" это читать или записывать один символ, смещаться вправо, влево или оставаться на месте и переходить в некоторое другое состояние.
полностью с этим согласен ведь там написанно:
Для демонстрации правильности работы Вашей машины Тьюринга написать программу на Паскале или С, которая работает по правилам Вашей машины Тьюринга, чтобы можно было убедиться в правильности Вашей машины.
а у вас машина тьюринга работает по своим правилам (еще не факт что правильным), а програма в делфях по своим правилам
D1 =¬x1 v ¬x2 v ¬x3; D2 =¬x2 v x3; D3=x3 v x5; D4= x3 v ¬x5; D5= ¬x3 v ¬x4; D6= x5; D7= x4. решение: D12=¬x1 v ¬x2, D13=¬x1 v ¬x2 v x5, D14=¬x1 v ¬x2 v ¬x5, D25=¬x2 v ¬x4, D34=x3, D35=x5 v ¬x4, D45=¬x5 v ¬x4, D46=x3, D57=¬x3, а вот теперь можно создать резольвенту из D34 и D57, которая даст пустой дизъюнкт: D3457=□. Вывод система противоречива или невыполнима
Решить задачу ВЫПОЛНИМОСТЬ Методом резолюций Робинсона. решение не верное - где ответ на ваше решение
Задача Выполнимость заключается в следующем. Имеется множество дизъюнктов. Спрашивается, имеется ли для этого множества дизъюнктов хотя бы одна общая выполняющая интерпретация? Если ДА, то это множество дизъюнктов называется выполнимым, если НЕТ – то невыполнимым.
и ещё
Основная идея метода резолюций состоит в том, чтобы проверить, содержит ли множество дизъюнктов S пустой дизъюнкт □. Если S содержит □, то оно невыполнимо. Если S не содержит □, то проверяется следующий факт: может ли □ быть получен из S.
Блин, народ, ну как же не правильно???? Сам лично писал и сдавал эту контрольную.... контрольная была безупречна. Препод убедился что контрольную писал сам, и 6 баллов в зачётке!!!!!!