Відповідно по символу b з підмножини A можна перейти до підмножини {5}, замиканням якої буде підмножина {1,2,4,5,6,7}. Позначимо це замикання буквою С.
Далі виконуємо ті самі переходи вже для підмножин B і C. Процес завершується, коли будуть вичерпані всі підмножини.
Результуюча таблиця переходів для даної схеми буде мати вигляд
a |
b |
|
A |
B |
C |
B |
B |
C |
C |
B |
C |
Відповідна діаграма переходів має вигляд
Завдання 4 Побудувати контекстно-вільну граматику, що генерує множину ланцюжків { 0n1n | n ≥ 1}.
Граматика визначається як четвірка компонентів (VT, VN, P, S).
Тут:
VT – алфавіт термінальних символів або терміналів;
VN – алфавіт нетермінальних символів або нетерміналів, VT VN= ;
P – множина продукцій (або правил) вигляду , складається з одного або більше символів V, — з нуля або більше символів V, де V= VT VN ;
S – стартовий символ (або аксіома).
Прикладом контекстно-вільної граматики для даного завдання може бути граматика
( {0, 1}, {S}, P, S )
з набором продукцій: S –> 01; S –> 0S1.
Завдання 5 Мовою функціонального програмування описати і застосувати функцію, що обчислює площу круга за відомим діаметром.
Запис даної функції мовою Лісп може мати вигляд
( defun S ( R ) (* 3.14 R R) ) ,
а її застосування для радіуса R=5
( S 5 ) .
Завдання 6. Мовою логічного програмування написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 30, 60, 90,
трикутник B має кути – 20, 80, 80.
Правило: трикутникє рівнобедреним, якщо два його кути однакові.
Ціль: чи є трикутники A і B рівнобедреними ?
Запис правил і фактів мовою Пролог може мати вигляд
predicates
tre (symbol, integer, integer, integer)
rb (symbol)
clauses
tre (a, 30, 60, 90).
tre (b, 20, 80, 80).
rb (V) :- tre (V, X, Y, _), X=Y .
rb (V) :- tre (V, _, Y, Z), Y=Z .
rb (V) :- tre (V, X, _, Z), X=Z .
Цілі записуються у вигляді rb(a), rb(b).
Завдання 7 Написати найслабкішу передумову для послідовності операторів
y := x + 9;
x := y + 8,
якщо постумовою Q останнього оператора є { x < 1 }.
Для послідовності операторів
{P1} S1 {P2},
{P2} S2 {P3}
правило виведення буде таким:
.
Кожний з операторів є оператором присвоювання вигляду х = Е або y = Е, правило виведення для якого має вигляд відповідно Р=Qx=E або Р=Qy=E. Іншими словами, передумова Р обчислюється як умова Q , в якій всі x або y заміняють виразом Е.
Таким чином, передумовою другого оператора буде
{y<–7}, а першого – {x < –16}.
СПИСОК ЛІТЕРАТУРИ
Основна література
1 Ахо А. и др. Компиляторы. Принципы, технологии, инструменты. – М.: Вильямс, 2001. – 768с.
2 Глушков В.М. и др. Алгебра. Языки. Программирование. – К: Наукова думка, 1989. –376c.
3 Жуков Д. Доказательство правильности программ. – Файл.
4 Люгер Д. Искусственный интеллект. – М.: Вильямс, 2003. – 864с
5 Себеста М. Основные концепции языков программирования. – М.: Вильямс, 2001. – 672с.
6 Хантер Р. Основные концепции компиляторов. – М.: Вильямс,2002. – 256с.
7 Хопкрофт Д. и др. Введение в теорию автоматов языков и вычислений. – М.: Вильямс, 2002. – 528с.
Додаткова література
8 Грис Д. Наука программирования. – М.: Мир, 1984
9 Дейкстра Э. Дисциплина программирования. – М.: Мир,
1978.
Електронні видання
10 Конспект лекцій дистанційного курсу з дисципліни “Теорія програмування”.
Навчальне видання
МЕТОДИЧНІ ВКАЗІВКИ
ДО ВИКОНАНЯ КОНТРОЛЬНОЇ РОБОТИ
3 ДИСЦИПЛІНИ “ТЕОРІЯ ПРОГРАМУВАННЯ”
ДЛЯ СТУДЕНТІВ ЗАОЧНОЇ ФОРМИ НАВЧАННЯ
напряму 0802
Відповідальний за випуск О.П. Чекалов
Редактор Н.А Гавриленко
Комп’ютерне верстання
Підп. до друку поз.
Формат 60х84/16. Папір офс. Гарнітура Times New Roman Cyr. Друк офс.
Ум. друк. арк. 1,39 Обл.-вид. арк. 0,93
Тираж 50 пр. Собівартість вид.
Зам. №
Видавництво СумДУ при Сумському державному університеті
40007, м. Суми, вул. Р.-Корсакова,2
Свідоцтво про внесення суб”єкта видавничої справи до Державного реєстру
ДК № 3062 від 17.12.2007.
Надруковано у друкарні СумДУ
40007, Суми, вул. Р.-Корсакова,2.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.