Учебная работа. Курсовая работа: Многоголовочная машина Тьюринга

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Курсовая работа: Многоголовочная машина Тьюринга

Введение

Тема моей курсовой работы «Построение модели многоленточной машинки Тьюринга для алфавита российского языка». Для разработки программки применяется среда программирования Visual C++6.0. Тип системы является пакет прикладных программ.

Данная модель производит морфологический разбор слова.

Морфологический разбор:анализ слов в предложении на принадлежность их к той либо другой части речи.

Морфология слов российского языка определяется по аффиксу – окончанию и суффиксу слова. Назовем это правило правилом морфологического разбора. Но есть слова, которые имеют окончание, подходящее для некой формы слова, но являются совсем иной формой. к примеру, «-ать» гласит, что слово есть глагол (прыгать, бежать). Но есть слово «кровать», которое есть существительное. Означает, из правила морфологического разбора есть исключения. Так же есть слова, которые не изменяют свою форму. к примеру, предлоги, «не», наречия, «настолько» и т.д. Означает, есть дополнения к правилу морфологического разбора. Эти дополнения можно представить как исключения из правила. Таковым образом, мы пришли к определенному логическому описанию морфологического разбора слов.


1. Общие сведения


1.1 Полное наименование системы

Построение модели многоленточной машинки Тьюринга для алфавита российского языка.


1.2 Условное обозначение

Turing


1.3 Шифр темы

ИВГУ.Э.001.ТЗ.17.1.1.М


1.4 Сроки начала и окончания работы

01.09.2009 – 21.12.2009


2. Предназначение и цели сотворения системы
2.1 Предназначение системы

Программка создана для разбора предложения при помощи многоленточной машинки Тьюринга.


2.2 Цели сотворения системы

1. Решение задач связанных с морфологическим разбором предложения.

2. Решение задач связанных с синтаксическим разбором предложения.

3. Решение задач связанных с семантическим разбором предложения.


3. Черта объекта автоматизации

3.1
Короткие сведения о объекте автоматизации

Объектом автоматизации является процесс разбора предложения.

3.2
Сведения о критериях эксплуатации объекта автоматизации и черта окружающей среды

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


4. Требования к системе
4.1 Требования к системе в целом
4.1.1 Требования к структуре и функционированию системы

На рисунке 1 изображена диаграмма прецедентов, описывающая главные варианты использования системы.

Набросок 1. Диаграмма прецедентов

На рисунке 2 изображена диаграмма деятель системы.

Набросок 2. Диаграмма деятельности


На рисунках 3 и 4 изображены контекстные IDEF0 диаграмма и IDEF0 нулевого уровня.

Набросок 3. IDEF0 диаграмма главный функции

Набросок 4. IDEF0 диаграмма нулевого уровня

На рисунке 5 изображена контекстная DFD диаграмма


Набросок 5. DFD диаграмма нулевого уровня


4.1.2
Требования к надёжности
Разрабатываемый программный продукт не должен быть подвержен критическим программным ошибкам. А конкретно:

— Отказ в работе не должен приводить к потере инфы.

— Ошибка ввода инфы не обязана влиять на последующую работу программки.

— При отказе программка не обязана приводить к зависанию системы.

Должны быть предусмотрены средства повышающие надёжность функционирования и сохранность инфы, к примеру, дублирование программки на носителях.


4.1.3 Требования к защите инфы

Для защиты инфы от несанкционированного доступа рекомендуется хранение инфы в зашифрованном виде и наличие каскадов паролей для доступа к определённому виду инфы.


4.1.4 Требования
по сохранности инфы при трагедии

Для сохранности инфы нужно в 2-ух копиях хранить инсталляционный вариант. А текущую информацию копировать с периодом один раз в недельку.




4.2 Требования к функциям, выполняемым системой

программка разбора предложения при помощи машинки Тьюринга состоит из последующих подсистем: ведение базы данных, подсистема анализа предложения, интерфейс юзера.

База данных обязана соответствовать последующим требованиям:

— В базе данных обязана содержаться довольно полная и четкая информация.

— В базе данных обязана храниться лишь нужная информация.

— Информация, хранимая в базе данных обязана быть защищённой.

Подсистема анализа предложения обязана производить разбор предложения с достаточной степенью точности и корректности.

интерфейс юзера должен быть:

— Комфортным.

— Обычным.

— Понятным.

4.3 Требования к видам обеспечения

Требования для программного обеспечения:

— На компе обязана быть установлена операционная система MicrosoftWindows.

Требования для информационного обеспечения:

— Целостность.

— Полнота.

— Точность.

— Достоверность.

Требования к техническому обеспечению:

— Состав технических средств обычный: монитор, мышка, клавиатура и наружные устройства. Смотри набросок 6, на котором изображена диаграмма развёртывания.

— Объём оперативки не наименее 256 Мбайт.

Набросок 6. Диаграмма развёртывания

Требования к математическому обеспечению:

программка реализует метод машинки Тьюринга.

— Употребляются математические преобразования семантических сетей в тексты на данном алгоритмическом языке.

— Употребляются математические преобразования для дополнения семантических сетей за счет остальных семантических сетей.

— При приобретении познаний употребляются лишь известные математические соотношения.

— Употребляются математические дела для определения словосочетаний.

Требования к лингвистическому обеспечению:

— В программке может употребляться лишь российский язык.

5. Состав и содержание работ по содержанию системы

5.1 Список шагов работ по созданию системы

Этапы по созданию системы последующие:

1. Техническое задание.

2. технический проект.

3. Рабочий проект.

5.2 Список организационно-исполнительных работ

Исполнитель: Тонкова Н.С. студент 4-го курса, 3 группа.

6
. технический проект на систему

В рамках данной работы поначалу следует подробнее разглядеть теоретические нюансы машинки Тьюринга, а потом разобрать базы морфологического разбора предложения.

Алан Тьюринг (1912–1954) – британский математик. Он отдал определение метода через построение, нареченное машинкой Тьюринга. В 1936 году Тьюринг предложил определение вычислимости, которое основано на анализе воплощения метода человеком, располагающим ручкой для письма и бумагой. Он разглядывает это как последовательность весьма обычных действий последующего вида:

(a) – запись либо стирание 1-го знака;

(b) – перенесение внимания с 1-го участка бумаги на иной.

На любом шаге метод описывает действие, которое будет совершено на последующем шаге. Это зависит лишь от (i) знака на участке бумаги, который обозревается в данный момент глазом (либо иным сенсором) и (ii) текущим состоянием (мысли) человека. Чтоб обеспечить возможность реализации метода, мы предполагаем, что это состояние стопроцентно определяется самим методом и предысторией его работы. Оно может включать частичную запись того, что вышло до сего времени, но не зависит от настроения либо сообразительности исполнителя метода либо от его самочувствия. Не считая того, существует лишь конечное число различимых состояний, в каких может находиться исполнитель, потому что он конечен в рассматриваемых качествах. состояние исполнителя может, естественно, изменяться в итоге деяния, предпринятого на этом шаге.

Тьюринг изобрёл конечные машинки, которые делают методы, выставленные таковым методом. Для всякого метода существует своя, хотя и не единственная, машинка. Разглядим коротко эти машинки.

Итак, машинка Тьюринга – это конечное устройство, которое производит деяния на картонной ленте.

В состав машинки Тьюринга заходит нескончаемая в обе стороны лента, разделённая на ячейки (лента представляет собой бумагу, которая требуется исполнителю для воплощения метода; любой квадрат представляет собой порцию ленты, обозреваемую в данный момент) и управляющее устройство, способное находится в одном из огромного количества состояний. Число вероятных состояний управляющего устройства естественно и буквально задано. В каждой ячейке быть может записан некий знак из фиксированного (для данной машинки) конечного огромного количества, именуемого алфавитом данной машинки. один из знаков алфавита выделен и именуется «пробелом» (s0) предполагается, что вначале вся лента пуста, другими словами, заполнена пробелами.

машинка Тьюринга может поменять содержимое ленты при помощи специальной читающей и пишущей головки, которая движется вдоль ленты. В любой момент головка находится в одной из ячеек. машинка Тьюринга получает от головки информацию о том, какой знак та лицезреет, и зависимо от этого (и от собственного внутреннего состояния) решает, что созодать, другими словами какой знак записать в текущей ячейке и куда двинуться опосля этого (влево, вправо либо остаться на месте). При всем этом также изменяется внутреннее состояние машинки (мы предполагаем, что машинка не считая ленты, имеет конечную память, другими словами конечное число внутренних состояний).

Таковым образом, чтоб задать машинку Тьюринга, нужно указать последующие объекты:

· случайное конечное огромное количество A (алфавит); его элементы именуются знаками;

· некий выделенный знак a0 A (пробел, либо пустой знак);

· конечное огромное количество S, называемое обилием состояний;

· некое выделенное состояние s0 S, называемое исходным;

· таблицу переходов, которая описывает S, элементы которого именуются заключительными состояниями (попав в такое состояние, машинка останавливается).

Таблица переходов устроена последующим образом: для каждой пары (текущее состояние, текущий знак) указана тройка (новое состояние, новейший знак, сдвиг) Тут сдвиг одно из чисел -1 (на лево), 0 (на месте) и 1 (вправо). Таковым образом, таблица переходов есть функция типа:

S x A → S x A x {-1,0,1},

определенная на тех парах, в каких состояние не является заключительным.

Остается обрисовать содержимое ленты есть случайное отображение Z → A), текущей позиции головки (некое целое число) и текущего состояния машинки (элемент S). Преобразование конфигурации в последующую происходит по естественным правилам: мы смотрим в таблице, что нужно созодать для данного состояния и для данного знака, другими словами, выясняем новое состояние машинки, меняем знак на обозначенный и опосля этого сдвигаем головку на лево, на Право либо оставляем на месте. При всем этом если новое состояние является одним из заключительных, работа машинки завершается. Остается условиться, как мы подаем информацию на вход машинки и, что считается результатом ее работы. Будем считать, что алфавит машинки, кроме пробела, содержит знаки 0 и 1 (также, может быть, еще какие-то знаки). Входом и выходом машинки будут конечные последовательности нулей и единиц (двоичные слова). Входное слово записывается на пустой ленте, головка машинки ставится в его первую клеточку, машинка приводится в изначальное состояние и запускается. Если машинка останавливается, результатом считается двоичное слово, которое можно прочитать, начиная с позиции головки и двигаясь вправо (пока не покажется знак, хороший от 0 и 1).

Таковым образом, неважно какая машинка Тьюринга задает некую частичную функцию на двоичных словах. Все такие функции естественно именовать вычислимыми на машинках Тьюринга.

машинка Тьюринга именуется детерминированной, если каждой композиции состояния и ленточного знака в таблице соответствует не наиболее 1-го правила, и недетерминированной в неприятном случае.

Интуитивное осознание:

Интуитивное осознание машинки Тьюринга таково: имеется нескончаемая лента, разделённая на клеточки. По клеточкам ездит каретка. Прочитав буковку, записанную в клеточке, каретка движется на Право, на лево либо остаётся на месте, при всем этом буковка заменяется новейшей. Некие буковкы останавливают каретку и завершают работу.

Полнота по Тьюрингу:

Можно сказать, что машинка Тьюринга представляет собой простейшую вычислительную машинку с линейной памятью, которая согласно формальным правилам конвертирует входные данные при помощи последовательности простых действий. Элементарность действий состоит в том, что действие меняет только маленькой кусок данных в памяти (в случае Машинки Тьюринга – только одну ячейку), и число вероятных действий естественно. Невзирая на простоту машинки Тьюринга на ней можно вычислить все, что можно вычислить на хоть какой иной машине, осуществляющей вычисления при помощи последовательности простых действий. Это свойство именуется полнотой.

Пример машинки Тьюринга:

Приведем пример МТ для умножения чисел в унарной системе счисления. машинка работает по набору правил, приведённых в таблице 1:


Таблица 1. Набор правил


Набор правил
Набор правил

q0*→q0R
q4a→q4aR

q01→q0R
q4=→q4=R

q0×→q1×R
q41→q41R

q11→q2aR
q4*→q51R

q21→q21L
q5^→q2*L

q2a→q2aL
q6a→q61R

q2=→q2=L
q6×→q7×R

q2×→q3×L
q7a→q7aR

q31 → q4aR
q71→q2aR

q3a→q3aL
q7=→q8=L

q3*→q6*R
q8a→q81L

q4×→q4×R
q8×→q9H

Определенная машинка Тьюринга задается перечислением частей огромного количества букв алфавита A, огромного количества состояний Q и набором правил, по которым работает машинка. Они имеют вид: qiaj→qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буковка aj, то головка перебегает в состояние qi1, в ячейку заместо aj записывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку на лево (L), на ячейку на Право(R), остаться на месте(H)). Для каждой вероятной конфигурации <qi, aj> имеется ровно одно правило. Правил нет лишь для заключительного состояния, попав в которое машинка останавливается. Не считая того, нужно указать конечное и изначальное состояния, исходную конфигурацию на ленте и размещение головки машинки.

Систематизация машин Тьюринга:

Есть разные модификации и обобщения машинки Тьюринга; к ним относятся, а именно, многоленточные и многоголовочные машинки, также машинки с разными ограничениями способностей передвижения головки и преобразования инфы на ленте.

Попытка систематизации машин Тьюринга, предпринята В.А. Успенским и А.Л. Семеновым [1987, с. 238–243]. Следуя ей, изобразим последующую классификационную схему:

Разглядим подробнее многоленточную машинку Тьюринга:многоленточные машинки Тьюринга имеют несколько (конечное огромное количество) лент, любая со собственной головкой, управляющему устройству доступны знаки, находящиеся в ячейках, на которых размещены головки лент. Выделены две ленты: входная, с которой разрешается лишь читать знаки, и выходная, на которую разрешается лишь писать знаки. Другие ленты именуются рабочими. Многоленточная машинка именуется k-ленточной, если у нее kрабочих лент. действие за такт работы состоит в изменении состояния управляющего устройства, изменении знаков в ячейках под головками и изменении положений головок на лентах (любая головка двигается не наиболее чем на одну позицию). Это действие совершенно точно определяется состоянием управляющего устройства и набором знаков в ячейках под головками. Если действие выполнить недозволено, машинка останавливается.


При одном движении, зависящем от состояния конечного управления и сканируемого знака каждой из ленточных головок, машинка может:

1) поменять состояние;

2) напечатать новейший знак на каждой из сканируемых ячеек;

3) передвинуть каждую из ее ленточных головок независимо друг от друга на одну ячейку на лево, на Право либо бросить ее на том же месте.

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

Таковым образом, мы обусловились, что машинка Тьринга – это конечное устройство, которое производит деяния на картонной ленте. Также мы разглядели систематизацию машин Тьюринга, принцип работы, также состав и предназначение машинки Тьюринга.

сейчас разглядим базы морфологического разбора предложения. Для начала определимся, что все-таки такое морфология, а потом тщательно разглядим все тонкости данного разбора.

Итак,
это раздел науки о языке, который изучает части речи. Все слова российского языка объединены в группы, которые именуются
– это лексико-грамматические классы слов, в каких слова соединяются воединыжды на базе последующих критериев:

1. Общего грамматического значения (предмета, признака предмета, количества и так дальше)

2. Схожего набора неизменных морфологических признаков (к примеру, для существительных – собственное либо нарицательное, одушевлённое либо неодушевлённое, род, число), общей системы конфигурации (к примеру, глаголы спрягаются, существительные и прилагательные склоняются).

3. Схожего набора словообразовательных и словоизменительных морфем (к примеру, некие части речи имеют обычные суффиксы: – тель, – изн- – имена существительные).

4. Схожих синтаксических функций в составе предложения.

Применительно к нашей задачке, остановимся лишь на трёх частях речи: имени существительном, имени прилагательном и глаголе, потому что для реализации морфологического разбора их будет полностью довольно, также данные части речи являются более распространёнными. Также при описании данных частей речи наиболее тщательно разберём некие морфологические признаки, словообразовательные и словоизменительные морфемы, присущие для избранных нами частей речи, причём наиболее тщательно следует направить внимание на окончание, потому что данный аспект в основном подступает нам для реализации задачки.

имя СУЩЕСТВИТЕЛЬНОЕ – это часть речи, отвечающая на вопросцы кто? что?. К морфологическим признакам имени существительного относятся род, число, склонение и падеж существительного. Разглядим поначалу род
.

имя ПРИЛАГАТЕЛЬНОЕ – это часть речи, которая обозначает признак предмета и отвечает на вопросцы: какой? какая? какое? какие? чей?. Прилагательные меняются по родам, числам и падежам. Как следует они постоянно связанны с существительными и стоят в том же роде, числе и падеже, что и существительное, с которым они связанны. Следует также отметить, что прилагательные бывают:

– высококачественные (другими словами выражают свойство предмета)

– притяжательные (другими словами выражают принадлежность придмета кому-либо)

– относительные (другими словами показывает на отношение данного предмета к иным предметам).

ГЛАГОЛ – это часть речи, которая обозначает действие предмета и отвечает на вопросцы: что созодать? что создать? Глагол имеет исходную форму – это инфинитив либо неопределённая форма глагола.

Система является пакетом прикладных программ, созданного для морфологического разбора предложения с внедрением метода машинки Тьюринга.

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

Внедрение системы дозволит обеспечить:

· Резвый разбор предложения.

· Доступ к справочной инфы системы.

Цели:

· составление диаграмм модели системы;

· составление диаграммы взаимодействия с целью распределения работ по анализу;

· составление метода решения задачки на основании диаграмм активности и классов;

Сведения о использовании при проектировании нормативно-технических документов:

· ГОСТ 34.201–89 Виды, комплектность и обозначение документов при разработке автоматических систем.

· ГОСТ 34.601–90 Автоматические системы, стадии сотворения.

· ГОСТ 34.602–89 Техническое задание на создание автоматической системы.

· РД 50–34.698–92 Виды испытаний автоматических систем.

· ГОСТ 19.105–78 ЕСПД Общие требования к программным продуктам

Описание процесса деятель

Состав процедур либо операций

Состав процедур либо операций представлен на рисунке 7.

Рис. 7. Расширенная диаграмма прецедентов

Формирование требований к организации работ в критериях функционирования системы

— К использованию системы допускаются лица прошедшие обучение по работе с системой.

— Обязана быть организованна поддержка конфиденциальности индивидуальных данных для доступа к системе

Главные технические решения

Решения по структуре системы

На рисунке 8 изображена диаграмма классов, которая указывает огромное количество классов, интерфейсов, коопераций и отношений меж ними.

Рис. 8. Диаграмма классов

На данной диаграмме классов приведены классы, содержащие имена, атрибуты и операции, также классы, содержащие лишь имена.

По данной диаграмме можно создать последующие выводы о системе.

Во-1-х, сущность морфологии заключается в определении перечисленных частей речи, также система морфологического разбора включает справочник. При помощи дела обобщения показывается, что любая из перечисленных частей речи является одной из огромного количества для себя схожих.

Во-2-х, отношение меж морфологией и справочником указывает то что оба этих класса работают с идиентично огромным массивом данных

На рисунке 9 изображена диаграмма компонент, которая указывает на какие части будет разбита создаваемая система.

Рис. 9. Диаграмма компонент

На диаграмме компонент показаны программные модули и информационные модули.

Модуль Morfol_razbr.exe является управляющим, созданный для выполнения главных функций, другими словами воплощение морфологического разбора текста введенного в данный модуль. При собственной работе ониспользует другие модули: Help.chm и BD.sql.

Решения по структуре инфы

На рисунке 10 изображена логическая IDEF1X диаграмма, которая указывает и обрисовывает все хранилища инфы создаваемой системы и дела меж ними.


Рис. 10. Логическая IDEF1X диаграмма

7
. Рабочий проект

На рисунке 11 изображена расширенная диаграмма классов.

Рис. 11. Расширенная диаграмма классов

На рисунке 12 изображена диаграмма активности.


Рис. 12. Диаграмма деятель

На рисунках 13, 14, 15 изображён интерфейс программки

Рис. 13. интерфейс программки. Выбор вида разбора


Рис. 14. интерфейс программки. Ввод слова

Рис. 15. интерфейс программки. Воплощение разбора

текст программки:

#include«stdafx.h»

#include «17_Turing.h»

#include «17_TuringDlg.h»

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

class CAboutDlg: public CDialog

{

public:

CAboutDlg();

// Dialog Data

// {{AFX_DATA(CAboutDlg)

enum {IDD = IDD_ABOUTBOX};

// }} AFX_DATA

// ClassWizard generated virtual function overrides

// {{AFX_VIRTUAL(CAboutDlg)

protected:

virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support

// }} AFX_VIRTUAL

// Implementation

protected:

// {{AFX_MSG(CAboutDlg)

// }} AFX_MSG

DECLARE_Message_MAP()

};

CAboutDlg:CAboutDlg(): CDialog (CAboutDlg:IDD)

{

// {{AFX_DATA_INIT(CAboutDlg)

// }} AFX_DATA_INIT

}

void CAboutDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog: DoDataExchange(pDX);

// {{AFX_DATA_MAP(CAboutDlg)

// }} AFX_DATA_MAP

}

BEGIN_Message_MAP (CAboutDlg, CDialog)

// {{AFX_MSG_MAP(CAboutDlg)

// No message handlers

// }} AFX_MSG_MAP

END_Message_MAP()

/////////////////////////////////////////////////////////////////////////////

// CMy17_TuringDlg dialog

CMy17_TuringDlg:CMy17_TuringDlg (CWnd* pParent /*=NULL*/)

: CDialog (CMy17_TuringDlg:IDD, pParent)

{

// {{AFX_DATA_INIT (CMy17_TuringDlg)

m_text = _T(«»);

otvet = _T(«»);

q = 0;

// }} AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp()->LoadIcon (IDR_MAINFRAME);

}

void CMy17_TuringDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog: DoDataExchange(pDX);

// {{AFX_DATA_MAP (CMy17_TuringDlg)

DDX_Control (pDX, IDC_EDIT3, q1);

DDX_Control (pDX, IDC_RADIO1, mor);

DDX_Text (pDX, IDC_EDIT1, m_text);

DDX_Text (pDX, IDC_EDIT2, otvet);

DDX_Text (pDX, IDC_EDIT3, q);

// }} AFX_DATA_MAP

}

BEGIN_Message_MAP (CMy17_TuringDlg, CDialog)

// {{AFX_MSG_MAP (CMy17_TuringDlg)

ON_WM_SYSCOMMAND()

ON_WM_Paint()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED (IDC_BUTTON1, OnButton1)

ON_BN_CLICKED (IDC_RADIO1, OnRadio1)

ON_BN_CLICKED (IDC_RADIO2, OnRadio2)

ON_BN_CLICKED (IDC_RADIO3, OnRadio3)

ON_BN_CLICKED (IDC_BUTTON3, OnFileClose)

//ON_BN_CLICKED (IDC_BUTTON4, OnButton4)

ON_BN_CLICKED (IDC_BUTTON2, OnButton2)

// }} AFX_MSG_MAP

END_Message_MAP()

/////////////////////////////////////////////////////////////////////////////

// CMy17_TuringDlg message handlers

BOOL CMy17_TuringDlg: OnInitDialog()

{

CDialog: OnInitDialog();

// Add «About…» menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT (IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu!= NULL)

{

CString strAboutMenu;

strAboutMenu. LoadString (IDS_ABOUTBOX);

if (! strAboutMenu. IsEmpty())

{

pSysMenu->AppendMenu (MF_SEPARATOR);

pSysMenu->AppendMenu (MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the Icon for this dialog. The framework does this automatically

// when the application’s main window is not a dialog

SetIcon (m_hIcon, TRUE); // Set big Icon

SetIcon (m_hIcon, FALSE); // Set small Icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CMy17_TuringDlg: OnSysCommand (UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout. DoModal();

}

else

{

CDialog: OnSysCommand (nID, lParam);

}

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the Icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CMy17_TuringDlg: OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc(), 0);

// Center Icon in client rectangle

int cxIcon = GetSystemMetrics (SM_CXICON);

int cyIcon = GetSystemMetrics (SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect. Width() – cxIcon + 1) / 2;

int y = (rect. Height() – cyIcon + 1) / 2;

// Draw the Icon

dc. DrawIcon (x, y, m_hIcon);

}

else

{

CDialog: OnPaint();

}

}

// The system calls this to obtain the cursor to display while the User drags

// the minimized window.

HCURSOR CMy17_TuringDlg: OnQueryDragIcon()

{

return (HCURSOR) m_hIcon;

}

void CMy17_TuringDlg: OnButton1 ()

{

// TODO: Add your control notification handler code here

UpdateData(true);

int i = strlen (m_text);

char x1 = m_text [i-1];

char x2 = m_text [i-2];

char x3 = m_text [i-3];

{if ((x1 == «й’ && (x2 == ‘ы» || x2 == «и’ || x2 == ‘о» || x2 == ‘а’))

|| (x1 == «ю’ && (x2 ==’у» || x2 == ‘ю’))

|| (x1 ==’е’ && (x2 == «и’ || x2 ==’о» || x2 == ‘е’ || x2 == ‘ы’))

|| (x3 == «о’ && ((x2 == ‘г» && x1 == «о’) || (x2 == ‘м» && x1 == ‘у’))

|| (x1 == ‘м’ && x2 == ‘ы’) ||

(x3 == «е’ && x2 ==’г» && x1 == ‘о’)))

{

otvet = «прилагательное»;

}

else

{

if (((x2 == «т’ && (x1 == ‘ь» || x1 == «и’)) || (x1 == ‘я» && x2 == ‘с’))

|| (x1 == «ь’ && x2 == ‘т» && (x3 == «а’ || x3 == ‘е» ||x3 == ‘и’))

|| (x1 == «т’ && (x2 == ‘е» || x2 == «и’ || x2 == ‘у» || x2 == «ю’ || x2 == ‘а» || x2 == ‘я’))

|| (x1 == «е’ && x2 == ‘т» && (x3 == ‘е’ || x3 == ‘и’))

|| (x1 == «ь’ && x2 == ‘ш» && (x3 == ‘е’ || x3 == ‘и’))

|| (x1 == «м’ && (x2 == ‘и» || x2 == ‘и’))

|| x1 == ‘У’)

{

otvet = «глагол»;

}

else

{

if ((x1==’а’||x1==’я’||x1==’о’||x1==’е’|| x1 == «з’ ||x1==’и’||x1==’ы’||x1==’у» || x1 == «ь’|| x1 == ‘с» || x1 == «ф’ || x1 == ‘ы» || x1 == «т’ || x1 == ‘р» || x1 == ‘к’)

|| (x2 == «и’ && (x1 == ‘я» || x1 == ‘м’ || x1 == ‘е’))

|| (x2 == «ь’ && (x1 == ‘е» || x1 == ‘и’))

|| (x2 == «о’ && (x1 == ‘й» || x1 == ‘е’))

|| (x1 == ‘а’ && x2 == ‘я’)

|| (x1 == «ь’ && x2 == ‘т» && x3 == ‘с’)

|| (x1 == «я’ || x2 == ‘с» || x3 == ‘й’))

{

otvet = «существительное»;

}

else

{

otvet = «yне удаётся распознать»;

}

}

}

UpdateData(false);

}

}

void CMy17_TuringDlg: OnRadio1 ()

{

// TODO: Add your control notification handler code here

q1. EnableWindow(false);

}

void CMy17_TuringDlg: OnRadio2 ()

{

// TODO: Add your control notification handler code here

q1. EnableWindow(true);

}

void CMy17_TuringDlg: OnRadio3 ()

{

// TODO: Add your control notification handler code here

q1. EnableWindow(true);

}

void CMy17_TuringDlg: OnFileClose()

{

// TODO: Add your control notification handler code here

}

void CMy17_TuringDlg: OnButton4 ()

{

// TODO: Add your control notification handler code here

}

void CMy17_TuringDlg: OnButton2 ()

{

otvet = «»;

m_text = «»;

UpdateData(false);

// TODO: Add your control notification handler code here

}


Перечень литературы

1.Катленд Н. Вычислимость. Введение в теорию рекурсивных функций: Пер. с англ. М.: мир, 1983.

2.Холзнер С. VisualC++ 6. Учебный курс. СПб.: Питер, 2007.

3.HTTP://ru.wikipedia.org

4.http://www.intuit.ru

5.http://www.metric.ru

6.HTTP://old.osp.ru

]]>