Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика за 1 курс / практика за 1 курс / Полина отчет / Министерство общего и профессионального образования РФ Челябинский Государственный Университет Троицкий Филиал.doc
Скачиваний:
43
Добавлен:
23.03.2015
Размер:
98.82 Кб
Скачать

Федеральное агенство по образованию Троицкий филиал государственного учреждения высшего профессионального образования «Челябинский государственный университет»

КАФЕДРА МАТЕМАТИКИ И ИНФОРМАТИКИ

ОТЧЕТ

ПО ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ

Выполнила: Лакирева П.С.

группа ТМ-101

Проверила: Булатова М.Г.

г. Троицк, 2006 г.

Содержание

1. Спецификация 3

1.1 Формулировка задания .. 3

  1. Описание входных и выходных данных 3

  2. Примеры входных и выходных данных 3

2. Проектирование .8

  1. Модульная структура 8

  2. Интерфейсы модулей 8

3. Кодирование 10

  1. Структура текста программы 10

  2. Алгоритмы реализации модулей 10

  1. Блок транслитерации 10

  2. Лексический блок 11

  3. Синтаксический блок 11

4. Тестирование 12

  1. Автономное тестирование 12

  2. Комплексное тестирование 13

  1. Заключение 14

  2. Литература 15

1.1 Формулировка задания:

Необходимо разработать распознаватель для следующей символьной цепочки: <цепочка>::=<оператор while-do>

<условие>: =<идентификатор><операция сравнения><идентификатор>

<оператор>::=<оператор присваивания><выражение>::=<элемент массива>

Символьная цепочка задается с помощью форм Бэкуса-Наура.

Примеры допустимых цепочек

while Z<M do Z:=A[$A0+1];

while id>=Max do id2:=Mem[$A10 mod 2];

while idl<>id2 do idl:=Arr[$FFFF-id2];

1.2. Описание входных и выходных данных

Описание входных данных:

Цепочка записана в текстовом файле INPUT.TXT, который состоит из одной строки.

Описание выходных данных

Результат работы модулей программы выводится на экран.

Результат распознавания записан в текстовый файл OUTPUT .TXT

В нем записано одно из следующих сообщений: ACCEPT, если цепочка допустима, и REJECT, если цепочка недопустима.

1.3. Примеры входных и выходных данных

Пример 1.

Входные данные:

Файл INPUT.TXT

while Z<M do Z:=A[$A0+1];

Выходные данные

На экран:

Символьная цепочка:

if Cond then myvar:=foo(idl) else proc(2);

Блок транслитерации:

(w, буква)

(h, буква)

(i, буква)

(l,буква)

(e, буква)

(, пробел)

(Z, буква)

(<, знак)

(M, буква)

(, пробел)

(d, буква)

(o, буква)

(, пробел)

(Z, буква)

(:, двоеточие)

(=, равно)

([, скобка)

($, знак доллара)

(A, буква)

(0,цифра)

(+, знак)

(1, цифра)

(], скобка)

(;, тчкзпт)

Лексический блок:

(while, Кл. слово)

(Z, Идентификатор)

(<, знак)

(M, Идентификатор)

(do, Кл. слово)

(Z, Идентификатор)

(:=, Присваивание)

(A[$A0+1], Идентификатор)

(;, Тчкзпт)

Синтаксический блок:

Правильно

Головной модуль

В файл OUTPUT.TXT:

ACCEPT

Пример 2.

Входные данные:

Файл INPUT.TXT

While Z<A do begin:=A[A0+1;

Выходные данные

На экран:

Символьная цепочка: While Z<A do begin:=A[A0+1;

Блок транслитерации:

(w, буква)

(h, буква)

(i, буква)

(l, буква)

(e, буква)

( , пробел)

(Z, буква)

(<, знак)

(A, буква)

( , пробел)

(d, буква)

(o, буква)

(, пробел)

(b, буква)

(e, буква)

(g, буква)

(i, буква)

(n, буква)

(:, двоеточие)

(=, равно)

(A, буква)

([, скобка)

(A, буква)

(0, цифра)

(+, знак)

(1, цифра)

(;, тчкзпт)

Лексический блок:

(while, Кл. слово)

(Z, Идентификатор)

(<, знак)

(M, Идентификатор)

(do, Кл. слово)

(begin, Кл. слово)

(:=, Присваивание)

(A[$A0+1, Идентификатор)

(;, Тчкзпт)

Синтаксический блок:

Введена лексема не удовлетворяющая формам Бэкуса-Наура

Головной модуль

В файл OUTPUT.TXT:

REJECT

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

Во втором примере была введена не правильная цепочка, поэтому программа выполнила только первый блок.