Автор: Пользователь скрыл имя, 10 Мая 2013 в 00:46, курсовая работа
В 1936 г. английский математик Алан Тьюринг опубликовал в трудах Лондонского математического общества статью «О вычислимых числах в приложении к проблеме разрешения», которая наравне с работами Поста и Черча лежит в основе современной теории алгоритмов. Тьюрингом в качестве математической модели для описания алгоритмов было предложено абстрактное вычислительное устройство, которое впоследствии было названо машина Тьюринга (МТ).
return semantic;
}
private void Algorithm()
{
int k = 0;
for (int i = 0; i < dataGridView1.ColumnCount; i++)
for (int j = 0; j < dataGridView1.RowCount; j++)
if (dataGridView1[i, j].Value == null) { k++; }
if (k == dataGridView1.RowCount * dataGridView1.ColumnCount) { DialogResult a = MessageBox.Show("Отсутствует алгоритм"); stop = true; semantic = false; }
}
private void OneStep()
{
try
{
string cell_tape;
string cell_table;
string itog;
int j;
int symbol;
if (number_cell_tape == dataGridView2.ColumnCount) { PlusK(); }
dataGridView1.ClearSelection;
dataGridView2.ClearSelection()
cell_tape = dataGridView2[number_cell_
dataGridView2[number_cell_
old_number = number_cell_tape;
j = 0;
while (j < dataGridView1.ColumnCount && dataGridView1.Columns[j].
{
j++;
} symbol = j;
if (dataGridView1[symbol, sost].Value == null)
{
timer1.Stop();
DialogResult a = MessageBox.Show("Неописано правило перехода");
dataGridView2[old_number, 0].Style.BackColor = Color.White;
dataGridView1[symbol, sost].Style.BackColor = Color.Red;
Refresh();
Thread.Sleep(1000);
dataGridView1[symbol, sost].Style.BackColor = Color.White;
stop = true; semantic = false;
}
else
{
try
{
cell_table = dataGridView1[symbol, sost].Value.ToString();
dataGridView1[symbol, sost].Style.BackColor = Color.LightBlue;
old_symbol = symbol; old_sost = sost;
dataGridView2[number_cell_
itog = GetLenta();
Tras.Add(itog);
switch (cell_table[1])
{
case 'R': number_cell_tape++; break;
case 'L': number_cell_tape--; break;
case 'S': break;
case 'r': number_cell_tape++; break;
case 'l': number_cell_tape--; break;
case 's': break;
}
string sss = "";
for (int i = 2; i < cell_table.Length; i++)
sss += cell_table[i].ToString();
sost = int.Parse(sss) - 1;
if (dataGridView1.RowCount < sost + 1)
{
DialogResult a = MessageBox.Show("Нет такого состояния");
dataGridView2[old_number, 0].Style.BackColor = Color.White;
dataGridView1[old_symbol, old_sost].Style.BackColor = Color.Red;
Refresh();
Thread.Sleep(1000);
stop = true; semantic = false;
}
}
catch (Exception)
{
stop = true;
semantic = false;
button3.Enabled = false;
butStep.Enabled = false;
Start.Enabled = true;
}
}
}
catch (Exception)
{
DialogResult a = MessageBox.Show("Алгоритм не применим к входным данным!");
}
}
private void Visualize()
{
dataGridView2[old_number, 0].Style.BackColor = Color.White;
dataGridView1[old_symbol, old_sost].Style.BackColor = Color.White;
}
private void Start_Click(object sender, EventArgs e)
{
Semantic();
NewStart();
if (semantic == true)
{
if (radioAvto.Checked)
{
Algorithm();
while (sost >= 0 && stop != true)
{
Visualize();
OneStep();
}
Visualize();
if (semantic)
{
DialogResult a = MessageBox.Show("Алгоритм закончил свою работу");
}
}
else if (radioZad.Checked)
{
button3.Enabled = true;
Algorithm();
timer1.Start();
}
else if (radioStep.Checked)
{
Algorithm();
Visualize();
if(!stop)
OneStep();
if (semantic)
{
button3.Enabled = true;
butStep.Enabled = true;
Start.Enabled = false;
}
Visualize();
}
}
}
private void NewStart()
{
sost = 0;
number_cell_tape = 1;
old_number = 1;
old_sost = 0;
old_symbol = 0;
stop = false;
Tras.Clear();
}
public string alphabet;
private void Plus ()
{
Simbol Sim = new Simbol();
Sim.ShowDialog();
string SS = Sim.simbol;
if (Sim.add && SS != ""&& SS !=" " &&!dataGridView1.Columns.
{
dataGridView1.ColumnCount++;
dataGridView1.Columns[
dataGridView1.Columns[
dataGridView1.Columns[
PosAdd();
listBox1.Items.Add(SS);
}
else
try
{
if (dataGridView1.Columns.
Информация о работе Система моделирования работы машины Тьюринга