Варіант 7
Завдання 1 Написати регулярний вираз для мови, яка являє собою множину ланцюжків з 0 і 1, у яких кожна пара суміжних нулів йде перед кожною парою суміжних одиниць.
Завдання 2 За регулярним виразом (b|c)*bc методом Томпсона побудувати ε- недетермінований автомат.
Завдання 3 Методом побудови підмножин перетворити ε- недетермінований автомат із завдання 2 у детермінований автомат. Результатом повинна бути діаграма переходів для відповідного детермінованого автомата.
Завдання 4 Подана граматика породжує мову регулярного виразу { 0*1(0|1)* }:
S –> A1B , A –> 0A | ε , B –> 0B | 1B | ε.
Записати ліве і праве породження для ланцюжка 00011.
Завдання 5 Мовою функціонального програмування описати і застосувати функцію, що обчислює об’єм кулі за відомим радіусом.
Завдання 6 Мовою логічного програмування написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 60, 60, 60;
трикутник B має кути – 45, 45, 90.
Правило: трикутникє прямокутним, якщо один з його кутів дорівнює 90 градусам.
Ціль: чи є трикутники A і B прямокутними ?
Завдання 7 Написати найслабкішу передумову для послідовності операторів
y := x + 9;
x := y + 8,
якщо постумовою Q останнього оператора є { x < 1 }.
Варіант 8
Завдання 1 Написати регулярний вираз для мови, яка являє собою множину ланцюжків з 0 і 1, у яких кожна пара суміжних одиниць йде перед кожною парою суміжних нулів.
Завдання 2 За регулярним виразом (b|c)*bcc методом Томпсона побудувати ε- недетермінований автомат.
Завдання 3 Методом побудови підмножин перетворити ε- недетермінований автомат із завдання 2 у детермінований автомат. Результатом повинна бути діаграма переходів для відповідного детермінованого автомата.
Завдання 4 Подана граматика породжує мову регулярного виразу { 0*1(0|1)* }:
S –> A1B , A –> 0A| ε , B –> 0B|1B| ε.
Записати ліве і праве породження для ланцюжка 00010.
Завдання 5 Мовою функціонального програмування описати і застосувати функцію, що обчислює відстань від довільної точки на площині до точки з координатами (2,3).
Завдання 6 Мовою логічного програмування написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 60, 60, 60;
трикутник B має кути – 45, 45, 90.
Правило: трикутникє рівностороннім, якщо всі кути рівні.
Ціль: чи є трикутники A і B рівносторонніми ?
Завдання 7 Написати найслабкішу передумову для послідовності операторів
y := x – 2;
x :=4*y + 3,
якщо постумовою Q останнього оператора є { x > 5 }.
3 ПРИКЛАДИ ВИКОНАННЯ ЗАВДАНЬ
Завдання 1 Написати регулярний вираз для мови, яка являє собою множину ланцюжків у алфавіті {a,b,c}, що містять хоча б один символ a і хоча б один символ b.
Клас регулярних виразів визначається такими правилами:
1 є регулярним виразом.
2 Якщо а А, то а – регулярний вираз.
3 Якщо w – регулярний вираз, то w* і (w) – регулярні вирази.
4 Якщо w1 і w2 – регулярні вирази, то w1w2, w1|w2 – регулярні вирази. У виразі w1w2 використовується операція конкатенації, у виразі w1|w2 – операція об'єднання.
Потрібний вираз може бути представлений, наприклад, у такій формі:
( (a|b|c)a(a||b|c)b(a|b|c) ) | ( (a|b|c)b(a||b|c)a(a|b|c) ) .
Завдання 2 За регулярним виразом (a|b)*a методом Томпсона побудувати ε- недетермінований автомат.
Розбираємо регулярний вираз r на складові підвирази. Для кожного базового символу з r, що є або символом алфавіту, або , будуємо базові недетерміновані автомати.
Потім відповідно до структури r комбінуємо базові недетерміновані автомати, поки не одержимо автомат для усього виразу.
Позначимо недетермінований автомат для s через N(s), а недетермінований автомат для t через N(t).
Тоді правила комбінування можна зобразити так:
а) для s|t
|
б) для st
в) для s*
Комбінуючи дані елементи, одержимо схему для виразу (a|b)*a.
Завдання 3 Методом побудови підмножин перетворити ε- недетермінований автомат із завдання 2 у детермінований автомат. Результатом повинна бути діаграма переходів для відповідного ДКА.
Метод побудови підмножин полягає в наступному.
Спочатку будується ε-замикання для вихідного стану 0. У замикання входять усі стани, що досяжні з вихідного по переходах . Для даної схеми
-close{0}= {0,1,2,4,7},
З підмножини A по символу a можна перейти до підмножини {3,8}. Замиканням підмножини {3,8} буде підмножина {1,2,3,4,6,7,8}, яку позначимо буквою B.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.