Лабораторная работа №3




Скачать 59.69 Kb.
НазваниеЛабораторная работа №3
Дата публикации08.10.2014
Размер59.69 Kb.
ТипЛабораторная работа
shkolnie.ru > Физика > Лабораторная работа
Задание на лабораторные работы

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

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

Среда программирования – любая, по желанию студента. Рекомендуется использовать Delphi, C# или аналоги.

Внимание!
При выполнении лабораторных работ необходимо предусматривать обработку любых возможных ошибок ввода. Программа не должна «зависать» или вести себя иным некорректным образом ни при каких начальных данных! При вводе неправильных начальных данных должно быть выведено сообщение об ошибке пользователя и предложено повторить ввод правильно (как вариант – можно программно запрещать ввод неправильных данных).


По каждой лабораторной работе необходимо выполнять отчёт, включающий в себя:

  1. постановку задачи;

  2. описание входных данных программы и её результатов;

  3. описание основных переменных, а также основных блоков и подпрограмм;

  4. алгоритм решения задачи;

  5. текст программы;

  6. результаты работы, если они есть (вариант – копия экрана), или результаты тестирования;

  7. ответы на контрольные вопросы.

Преподавателю на проверку необходимо предоставлять отчёт, исходный код и откомпилированный модуль (exe-файл).

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

Лабораторная работа № 3 Моделирование работы МПА

Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.

На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.

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

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

Внимание!!! В ходе проверки цепочки ДМПА может проделывать пустые такты не только после прочтения всей цепочки, но и в её середине. Внимательно прочтите соответствующий раздел лекций 3.1.

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

Дополнительно: Предоставить пользователю возможность вносить некоторые изменения в исходные данные без полного их обновления.

Контрольные вопросы:

  1. Обязательно ли должна быть задана функция переходов для всех возможных сочетаний «состояние, входной символ, символ стека»? Как поведёт себя автомат, если при проверке цепочки встретит неизвестную комбинацию?

  2. В каком случае цепочка считается допущенной автоматом, а в каком – нет?

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

Лабораторная работа № 4 Перевод с помощью СУ-схемы

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

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

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

^ Работа программы может быть организована по-разному. В качестве основного задания допустимо использовать материалы лабораторной работы №1. На первом этапе в соответствии с входной грамматикой схемы СУ-перевода попытаться сгенерировать цепочку, поданную на вход (поскольку её длина известна, можно генерировать только цепочки этой длины). При генерации фиксировать номера использованных правил. В случае успешной генерации выполнить второй этап – применяя номера использованных правил, получать одновременно входную и выходную цепочки по правилу вывода и соответствующему ему элементу перевода.

На выходе – отображение процесса перевода и результирующая цепочка языка.

Дополнительно: Вместо попыток генерации исходной цепочки сделать её разбор каким-либо способом из числа рассмотренных в теоретическом курсе. Например, использовать разбор с возвратами, нисходящий или восходящий (). В таком случае первый этап работы программы изменится на распознавание цепочки, т.е. на нём будет выполняться проверка цепочки построенным распознавателем. На выходе будут получены номера правил, по которым цепочка строилась. Второй этап – перевод с помощью схемы СУ-перевода – полностью совпадает с основным заданием.

Контрольные вопросы:

  1. В чём отличие работы схемы СУ-перевода от порождения цепочек языка при помощи обычной грамматики?

  2. Постройте схему СУ-перевода, которая будет переводить цепочки из алфавита {a,b,+,*} из префиксной записи в постфиксную (в том же алфавите). Проверьте работу программы на этой схеме.

Лабораторная работа № 5
Перевод с помощью МП-преобразователя

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

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

На вход программы подаётся ДМП-преобразователь (множество состояний, алфавиты входного и выходного языков, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (аналогично лаб. раб. №3).

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

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

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

Дополнительно:

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

Контрольные вопросы:

  1. Как поведёт себя преобразователь, если поданная на его вход цепочка не может быть распознана (не принадлежит к заданному языку)?

  2. Как соотносятся алфавиты исходного языка и того, на который выполняется перевод (должны совпадать, различаться…)? Поясните ответ.

  3. Как поведёт себя Ваша программа при некорректном вводе? Например, функция переходов задана не в том формате, определена не для того количества параметров, использует алфавит, отличный от заданных…




Похожие:

Лабораторная работа №3 iconЛабораторная работа. Получение и свойства оксидов, гидроксидов и солей
Лабораторная работа. Ряд напряжений металлов. Гальванические элементы. Электролиз юююююю
Лабораторная работа №3 iconКонтрольная работа №1 Контрольная работа №2 Лабораторная работа №1...
Для допуска к сдаче экзамена за первый семестр студент должен иметь оценки «зачтено» за все письменные работы этого семестра
Лабораторная работа №3 iconКонтрольная работа №1 Контрольная работа №2 Лабораторная работа №1...
Для допуска к сдаче экзамена за первый семестр студент должен иметь оценки «зачтено» за все письменные работы этого семестра
Лабораторная работа №3 iconЛабораторная работа №1 Создание и редактирование таблиц 2
Лабораторная работа №3 Создание простых запросов. Построитель выражений. Фильтры. Сортировка записей в таблице 8
Лабораторная работа №3 iconЛабораторная работа №2
Лабораторная работа 8 не зачтена. Есть замечания к выводу из работы, к ответам на контрольные вопросы. Исправьте работу в соответствии...
Лабораторная работа №3 iconЛабораторная работа №1. Описание и анализ предметной области 6 1...
Лабораторная работа №2. Оформление результатов анализа при помощи диаграмм uml 10
Лабораторная работа №3 iconЛабораторная работа «Ремонт торцевых уплотнений» Лабораторная работа...
Машины и аппараты химических производств и предприятий строительных материалов, в 2004 г защитил кандидатскую диссертацию по специальности...
Лабораторная работа №3 iconЛабораторная работа №9: Создание приложения-презентации
Лабораторная работа №9: Создание приложения-презентации Windows Foundation Presentation
Лабораторная работа №3 iconЛабораторная работа №2 
Работа со списками. Создание автоматических промежуточных отчетов и сводных таблиц 
Лабораторная работа №3 iconЛабораторная работа основана на практических занятиях по дисциплине "Языки программирования"
Лабораторная работа основана на практических занятиях по дисциплине "Языки программирования", разработанных доцентом кафедры Иивм...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
shkolnie.ru
Главная страница