САМАРСЬКИЙ ДЕРЖАВНИЙ АЕРОКОСМІЧНИЙ УНІВЕРСИТЕТ імені академіка С.П. КОРОЛЕВА
Кафедра інформаційних систем і технологій
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсового проекту по курсу
"Інформаційні технології" на тему
"Побудова функції передування по заданій КС-граматики "
Виконав:
студент групи 634 Абрар А.М.
Керівник проекту:
Шамаш М.А.
Дата здачі:
Оценка:
Самара 2001
РЕФЕРАТ
Курсовий проект
Пояснювальна записка: 30 с., 5 рис., 3 схем програм та алгоритмів, 3 бібліографічного джерела.
ТЕРМІНАЛ, нетермінал, ГРАММАТИКА, ФУНКЦІЯ передування, ГРАФ, лінеаризації.
У курсовому проекті розроблений алгоритм і відповідна йому програма, що дозволяє по введеної користувачем КС-граматики побудувати функцію передування, використовуючи граф лінеаризації і алгоритм перерахунку з візуалізацією кроків побудови графа. Граматика може бути введена як у самій програмі, так і з текстового файлу. Також існує можливість збереження результату. Програма написана на мові Pascal 7.0.
ЗМІСТ
3
1. Постановка 4
2. Опис структури 5
3. Граматики 6
3.1 Граматики простого передування ........................................... ........................... 6
3.2 Граматики операторного передування ........................................... ................ 8
3.3 Приклад побудови матриці передування .......................................... ........... 10
3.4 Лінеаризація матриці передування ........................................... ...................... 13
4. Керівництво 13
5. Текст 15
6. Список використаних 30
В 1. Постановка завдання
За заданою КС-граматики побудувати відношення простого або операторного передування і функцію передування, використовуючи граф лінеаризації і алгоритм перерахунку з візуалізацією кроків побудови графа.
В
2. Опис структури даних
Типи:
Для зберігання терміналів і терміналів використовується тип:
notTerm = ^ List;
List = Record {список терміналів і нетерміналів}
Name: Str10; {термінал або нетермінал}
Next: notTerm;
End;
Для зберігання граматики (тексту) використовується:
strBuf = array [1 .. 800] of Char;
Матриця передування:
matrixPr = array [1 .. 20,1 .. 20] of 0 .. 4;
Функція передування:
FuncPr = array [1 .. 2,1 .. 20] of Byte;
Процедури і функції (основні):
Введення граматики здійснюється функцією:
Function InputText: Boolean;
Для синтаксичного аналізу КС-граматики використовуєть...