Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архив1 / docx53 / отчет2

.docx
Скачиваний:
22
Добавлен:
01.08.2013
Размер:
459.9 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

Чорноморський державний університет імені Петра Могили

Факультет комп’ютерних наук

Кафедра інтелектуальних інформаційних систем

ЗВІТ

з лабораторної роботи №2

Побудова машини Поста

Дисципліна “Теорія алгоритмів та математична логіка”

Спеціальність “Інтелектуальні системи прийняття рішень”

6.050101–ЛР.ПЗ.02–303.2910302

Студент___________К.О.Баранов

(підпис)

____________

(дата)

Викладач___________Д.О.Назаренко

(підпис)

____________

(дата)

Миколаїв – 2012

Варіант 1

Побудувати машину Поста, яка обчислює функцію:

Реалізація машини Поста за допомогою програмного емулятора Алго2000:

Варiант

1

2

2

2

2

2

2

Реалізація машини Поста за допомогою програмного емулятора Алго2000:

Алгоритм:

  1. Пошук першого числа.

  2. Стираємо першу мітку

  3. Пошук кінця першого числа

  4. Ставимо мітку на наступну клітинку

  5. Рухаємось до проміжку

  6. Повторюємо кроки 1-5.

Лістинг програми:

public class Main {

static void post(char[] tape, String[][] command) {

int numberCommand = 0;

char curCommand = 0;

int currentSymbol = 1;

String cmd = "";

boolean flag;

while ( currentSymbol<tape.length) {

curCommand = command[numberCommand][0].toCharArray()[0];

switch (curCommand) {

case '>':

currentSymbol++;

numberCommand++;

break;

case '<':

currentSymbol--;

numberCommand++;

break;

case '?':

cmd = command[numberCommand][1];

if (tape[currentSymbol] == '0') {

numberCommand = Integer.parseInt(cmd.substring(0, cmd.indexOf(",")));

} else {

numberCommand = Integer.parseInt(cmd.substring(cmd.indexOf(",") + 1));

}

break;

case 'V':

tape[currentSymbol] = '1';

numberCommand++;

System.out.println(tape);

break;

case 'I':

tape[currentSymbol] = '0';

numberCommand++;

System.out.println(tape);

break;

}

}

}

public static void main(String[] args) {

String tp = "0110110110110110110";

String command[][] = {{"I", "1"},{"<", "2"},{"?", "3,1"},{">", "4"},

{"I", "5"},{">", "6"},{"?", "7,5"},{"V", "8"},{">", "9"},{"?", "10,2"},{"!",""}};

char[] tape = tp.toCharArray();

post(tape, command);

}

}

Результат:

Соседние файлы в папке docx53