Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОИ.doc
Скачиваний:
27
Добавлен:
01.05.2015
Размер:
193.54 Кб
Скачать

Задачи и упражнения

  1. Описать автомат M с алфавитами A=Z={0, 1} и двумя состояниями s0 и s1, который считывает последовательность из нулей и единиц для проверки четности. Построить таблицу и диаграмму состояний.

  2. Построить таблицу и диаграмму состояний для автомата M с алфавитами A=Z={0, 1} и тремя внутренними состояниями S={s0, s1, s2}, функции выхода и перехода которого задаются следующими предписаниями:

Определить для указанных четверок чисел последовательности, полученные на выходе:

а) 0, 1, 0, 1; б) 1, 0, 1, 0; в) 1, 1, 0, 1; г) 0, 1, 1, 0.

  1. Начертить диаграмму состояний автомата M с алфавитами A=Z={0, 1}, который печатает 1, если непосредственно перед этим он считал четыре последовательных 1, и 0 в противном случае. Автомат работает до тех пор, пока не считает три последовательных 0, после чего печатает лишь нули.

  2. Описать машину Тьюринга, которая считывает входную последовательность нулей и единиц и печатает Ч, если число единиц четное, и Н, если нечетно. Строке из нулей и единиц предшествуют и последуют пустые ячейки, обозначаемые #. Символы Ч или Н печатаются в первой пустой ячейке вслед за входной строкой.

  3. Написать алгоритм для машины Тьюринга, выполняющий сложение двух неотрицательных целых чисел. Неотрицательное целое число N в машине Тьюринга задается последовательностью (N+1) единиц, стоящих подряд. Два числа отделяются нулем.

  4. Написать для машины Тьюринга алгоритм прибавления единицы к числу N в десятичной системе счисления.

  5. Составить программу прибавления к произвольному числу единицы для машины Поста, когда головка находится на расстоянии нескольких клеток слева от заданного числа.

  6. Написать для машины Поста программу вычитания двух чисел, разделенных одной пустой клеткой. Уменьшаемое – не меньше вычитаемого. Начальное положение головки над пустой клеткой, отделяющей заданные числа.

  7. Составить программу для машины Поста, создающую на ленте копию заданной последовательности меток справа от нее, когда головка находится над одной из заданных меток.

  8. Составить программу для сложения целых положительных чисел на машине Поста, когда головка находится над числом a, а число b расположено справа от числа a через одну пустую клетку.

  9. Написать для машины Поста программу умножения на 2 числа, записанного метками на ленте, когда головка находится над одной из заданных меток.

  10. Написать для машины Поста программу деления числа, записанного метками, на 2, когда головка находится над одной из заданных меток. Исходное число должно делиться на 2 без остатка.

  11. Построить дедуктивные цепочки от слова «мука» к слову «торт» и от слова «муха» к слову «слон», заменяя каждый раз по одной букве так, чтобы каждый раз получалось слово.

  12. Постройте нормальный алгоритм Маркова, реализующий вычитание двух целых чисел, представленных символами 1. Проверьте его работу на примерах.

  13. Задайте нормальный алгоритм Маркова, реализующий умножение двух чисел, представленных символами 1.

  14. Используя рекурсивные функции, постройте:

а) трехместную функцию сложения;

б) n-местную функцию сложения.

  1. Используя рекурсивные функции, постройте:

а) двухместную функцию умножения;

б) трехместную функцию умножения;

в) n-местную функцию умножения.

  1. Постройте частичную двухместную функцию деления.