Автор очень ответственно и профессионально подходит к выполнению заказов. Большое спасибо!
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
2. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ ПРОГРАММЫ И ЕЁ РЕЗУЛЬТАТОВ
Входные данные программы состоят из описания КС-грамматики (нетерминальные символы, терминальные символы, целевой символ, правила вывода) и диапазона длин выводимых цепочек (минимальная длина, максимальная длина). Дополнительно может быть введён символ пустой цепочки. По умолчанию, в качестве символа пустой цепочки установлен символ ‘*’.
Терминальные и нетерминальные символы вводятся в поля программы, отделяя отдельные символы друг от друга запятыми. Правила вывода вводятся в отдельном окне программы. При этом программа в левой части правила допускает только ввод нетерминальных символов, а в правой части правила – нетерминальных и терминальных символов, а также символа пустой цепочки.
Результат работы программы представлен на экране в виде упорядоченного в лексикографическом порядке списка выведенных цепочек языка в заданном диапазоне длин.
break;
case '2':return 1;
}
}
}
// Функция ищет символ Symb в массиве M и возвращает его индекс, ес-ли символ не найден, функция вернет размер массива
int SymbolSearch(char M[][MAX_SYMB_LENGHT], int Size, char *Symb)
{
int i = 0;
while (i< Size)
{
if (strcmp(M[i], Symb) == 0) break;
i++;
}
return i;
}
// Функция вводит символы разделенные запятыми из строки Str в мас-сив M, возвращает количество веденных символов
int EnterScores(char M[][MAX_SYMB_LENGHT], int max)
{
char Str[MAX_STR_LENGHT];
char *pNextToken = NULL;
int i = 0;
printf("Введите через запятую множество:\n>> ");
gets_s(Str, MAX_STR_LENGHT-1);
char * pToken = strtok_s(Str, ", ", &pNextToken;);
while (pToken)
{
strcpy_s(M[i], pToken);
i++;
if(i == max) break;
pToken = strtok_s('\0', ", ", &pNextToken;);
}
return i;
}
// Ввод множества конечных состояний
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
1. Постановка задачи
Пусть регулярный язык задаётся конечным автоматом – ДКА. Написать про-грамму, которая будет проверять по заданному автомату вводимую цепочку и де-лать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, “в цепочке присутствуют посторонние символы”, “после прочтения цепочки автомат не пришёл в конечное состояние” и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
2. Описание входных данных программы и её результатов
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последо-вательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Проверить работу программы на примерах из лекций и задачах из контроль-ных вопросов.
1. Постановка задачи
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА. Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отри-цательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клави-атуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить ра-боту.
Проверить работу программы на примерах из лекций и задачах из контроль-ных вопросов.
2. Описание входных данных программы и её результатов
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверя-емая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предо-ставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последо-вательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
7. Ответы на контрольные вопросы
1. Обязательно ли должна быть задана функция переходов для всех возмож-ных сочетаний “состояние, входной символ, символ стека”? Как поведёт се-бя автомат, если при проверке цепочки встретит неизвестную комбинацию?
Нет. Функция переходов задается правилами для отдельных сочетаний “со-стояние, входной символ, символ стека”.
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
2. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ ПРОГРАММЫ И ЕЁ РЕЗУЛЬТАТОВ
Входные данные программы состоят из описания КС-грамматики (нетерминальные символы, терминальные символы, целевой символ, правила вывода) и диапазона длин выводимых цепочек (минимальная длина, максимальная длина). Дополнительно может быть введён символ пустой цепочки. По умолчанию, в качестве символа пустой цепочки установлен символ ‘*’.
Терминальные и нетерминальные символы вводятся в поля программы, отделяя отдельные символы друг от друга запятыми. Правила вывода вводятся в отдельном окне программы. При этом программа в левой части правила допускает только ввод нетерминальных символов, а в правой части правила – нетерминальных и терминальных символов, а также символа пустой цепочки.
Результат работы программы представлен на экране в виде упорядоченного в лексикографическом порядке списка выведенных цепочек языка в заданном диапазоне длин.
break;
case '2':return 1;
}
}
}
// Функция ищет символ Symb в массиве M и возвращает его индекс, ес-ли символ не найден, функция вернет размер массива
int SymbolSearch(char M[][MAX_SYMB_LENGHT], int Size, char *Symb)
{
int i = 0;
while (i< Size)
{
if (strcmp(M[i], Symb) == 0) break;
i++;
}
return i;
}
// Функция вводит символы разделенные запятыми из строки Str в мас-сив M, возвращает количество веденных символов
int EnterScores(char M[][MAX_SYMB_LENGHT], int max)
{
char Str[MAX_STR_LENGHT];
char *pNextToken = NULL;
int i = 0;
printf("Введите через запятую множество:\n>> ");
gets_s(Str, MAX_STR_LENGHT-1);
char * pToken = strtok_s(Str, ", ", &pNextToken;);
while (pToken)
{
strcpy_s(M[i], pToken);
i++;
if(i == max) break;
pToken = strtok_s('\0', ", ", &pNextToken;);
}
return i;
}
// Ввод множества конечных состояний
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
1. Постановка задачи
Пусть регулярный язык задаётся конечным автоматом – ДКА. Написать про-грамму, которая будет проверять по заданному автомату вводимую цепочку и де-лать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, “в цепочке присутствуют посторонние символы”, “после прочтения цепочки автомат не пришёл в конечное состояние” и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
2. Описание входных данных программы и её результатов
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последо-вательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Проверить работу программы на примерах из лекций и задачах из контроль-ных вопросов.
1. Постановка задачи
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА. Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отри-цательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клави-атуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить ра-боту.
Проверить работу программы на примерах из лекций и задачах из контроль-ных вопросов.
2. Описание входных данных программы и её результатов
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверя-емая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предо-ставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последо-вательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
7. Ответы на контрольные вопросы
1. Обязательно ли должна быть задана функция переходов для всех возмож-ных сочетаний “состояние, входной символ, символ стека”? Как поведёт се-бя автомат, если при проверке цепочки встретит неизвестную комбинацию?
Нет. Функция переходов задается правилами для отдельных сочетаний “со-стояние, входной символ, символ стека”.
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—4 дня |
1500 ₽ | Цена | от 200 ₽ |
Не подошла эта работа?
В нашей базе 2003 Лабораторной работы — поможем найти подходящую