Министерство общего и профессионального образования Московский Государственный Университет Экономики Статистики и Информатики Институт экономических информационных систем и программирования Контрольная работа по дисциплине Разработка и стандартизация программных средств и информационных технологий Руководитель Смирнов А.А. Студентка Волкова А.В. Группа
ЗКП-401 Зачетная книжка 97122 Москва 2001г. Содержание 1. Руководство пользователя. 1. Назначение программы. 2. Описание предметной области в табличной форме. 3. Граф предметной области. 4. Грамматика входного языка. 5. Примеры задания программ на входном языке. 5 2.
Описание программы. 1. Общие сведения. 2. Описание логической структуры программы. 3. Вызов и загрузка. 4. Входные данные. 5. Выходные данные. 6. Модуль лекси ческого разбора. 3. Приложения. 1. Результаты выполнения программы. 2. Тексты модулей. 3. Распечатка экрана.
4. Список использованной литературы. 1. Руководство пользователя. 1. Назначение программы. Данная программа предназначена для создания упорядоченного каталога книг каталог упорядочивается по названию книги. В программе предусмотрен ввод данных о книгах, просмотр и редактирование ранее введенной информации, сохранение информации на жестком диске компьютера, а также обработка информации и упорядочение ее в алфавитном порядке по названию книг, вывод каталога на экран
и его распечатка на принтере. Таким образом, посредством перечисленных операций создается каталог книг. 2. Описание предметной области в табличной форме. Область деятельности, к которой относятся задачи, решаемые ППП, называется предметной областью пакета. Для разработки пакета прикладных программ предметная область представляется в виде модели. Модель предметной области может быть представлена следующими вариантами – с помощью таблиц – с помощью графа предметной области. Использование табличного варианта предполагает формирование нескольких таблиц табл.1, табл.2, табл.3. Таблица 1. Таблица данных. I Количество книг KolKn Целое 2 Наименование книги Name Текстовый 3 Автор книги Avtor Текстовый 4 Izdat Текстовый 5 И т.д.
Таблица 2. Таблица связей по определению, И11в Старшее дакко II ШШШШЩШЗЙЙ ЙЙЧИ1Н 1 Izdat Таблица 3. Таблица задач. ШвШ1Ш ШЩЩЖ 1ШШЩЖ ШЩррр IE 1 INFORM 2 INFORM, YPST 3 INAN YPST PRST,
INFORM 4 INFORM 5 INFORM KODV б Модуль помощи HELPER 3. Граф предметной области. Граф предметной области в дальнейшем ГПО используется для описания взаимосвязи различных элементов предметной области. Стадии обработки обозначаются вершинами, а модули, которые позволяют выполнить требуемую обработку
– соответствующими дугами. Вершинами обозначены следующие стадии обработки 1. Ввод информации о книгах 2. Работа с уже введенной информацией 3. Сохранение информации 4. Обработка информации 5. Выдача результатов обработки 6. Завершение работы. Дугами обозначены следующие алгоритмы 1. Ввод данных с клавиатуры 2. Просмотр введенной информации 3.
Редактирование введенной информации 4. Сохранение каталога на жестком диске 5. Упорядочение данных о книгах в алфавитном порядке для получения каталога 6. Вывод на экран сформированного каталога 7. Вывод на печать готового каталога. Массив ГПО имеет вид 1 2 2 3 2 3 3 4 4 5 5 б 4. Грамматика входного языка. Входной язык ППП представляет собой специально разработанный программный язык. Как правило, он ориентируется на терминологию, привычную для пользователя прикладного программного обеспечения. Правильность предложений входного языка определяется специальным набором правил, так называемой формальной грамматикой. Для описания формальной грамматики используем метаязык и нотацию Бэкуса-Наури. Эта нотация предусматривает использование следующих символов – по описанию есть – логическое сложение или – скобка для обозначения нетерминального символа – обозначение необязательного элемента.
Формальная грамматика G задается четырьмя элементами GN,Z,T,F, где N – множество нетерминальных символов нетерминальный словарь Z – начальный символ аксиома Т – множество терминальных символов терминальный словарь F – множество порождений. Формальная грамматика позволяет описать входной язык пакета. 5. Примеры задания программ на входном языке. ПВЯ оператор оператор оператор имя оператора разделитель
параметр признак конца оператора имя оператора ввод проем ред сохр упоряд экр печ разделитель параметр символьная константа символьная константа буква буква цифра буква А Б Я цифра 01 9 признак конца оператора Пример ВВОДКЛАВИАТУРА ПРОСМЛЕРМОНТОВ СОХР-СKATALOGBOOK УПОРЯДАВТОР ЭКРЭКРАН 2. Описание программы. 1. Общие сведения. Данная программа выполняет необходимые действия в соответствии
с командной информацией, заданной пользователем. Командная управляющая информация представляется на входном языке пакета. Программа на входном языке обрабатывается специальной управляющей программой, которая обеспечивает вызов необходимых программных модулей. Управляющая программа составлена из следующих модулей 2. Описание логической структуры программы. Управляющая программа состоит из следующих модулей 1.Ведущий блок, который обеспечивает выполнение требуемой последовательности других модулей. Является центральным элементом управляющей программы. 2. Модуль обмена предназначен для обеспечения связи ППП с источниками и получателями информации. Он обеспечивает ввод ПВЯ ввод словарей ввод данных и вывод результатов решения.
3. Модуль лексического разбора предназначен для распознавания лексических конструкций лексем и преобразования ПВЯ в вид, удобный для дальнейшей обработки. 4. Модуль синтаксического анализа предназначен осуществлять проверку грамматической правильности программы на входном языке посредством анализа управляющего вектора. Он обеспечивает следующие действия контролирует соответствие управляющего вектора графу предметной области обеспечивает использование аппарата умолчания обеспечивает использование макрокоманд.
5. Модуль управления обеспечивает выполнение обращений к обрабатывающим программам. Порядок обращения к обрабатывающим программам задается в управляющем векторе. При вызове обрабатывающей программы осуществляется передача параметров, часть из которых является входными данными, а остальные параметры являются результатными, для которых вычисляются новые значения. 6. Модуль информатора предназначен для выдачи сообщений о ходе решения задачи.
7. Модуль помощи предназначен для руководства действиями пользователя. Организация помощи пользователю является непременным условием эффективного функционирования прикладного программного обеспечения. Программные модульные пакеты, реализующие алгоритмы обработки данных, затребованные в ПВЯ, реализуются в обрабатывающем модуле. Поддержание пакета в рабочем состоянии обеспечивается обслуживающими модулями. ППП представляет собой объединение входного языка, информационной базы, управляющих, обслуживающих и обрабатывающих модулей. 2.3. Вызов и загрузка. Вызов и загрузка осуществляется запуском файла KATALOG.PAS из среды Turbo Pascal. 2.4. Входные данные. 2.5. Выходные данные. 2.6. Модуль лексического разбора. Модуль лексического разбора предназначен для распознавания лексических конструкций лексем и преобразования ПВЯ в вид, удобный для дальнейшей обработки. Лексический разбор представляет собой сложный алгоритм,
для реализации которого может быть использована модель с конечным числом состояний, то есть конечный автомат. Детерминированным конечным автоматом называется упорядоченная система из пяти символов А X,S,S0,B,F , где X – множество входных символов S – множество внутренних состояний S0 – начальное состояние В – функция, отображающая переход в новое состояние F – заключительное состояние. Таблица конечного автомата представлена далее
Таблица 4. Таблица конечного автомата. Ввод Проем Редакт Сохр Упоря дочен Экр Печ Пробел Конец строки Неопозн символ SOST0 lFl 1F1 1F1 1F1 1F1 0 KODV 0 KODV 4 SOST1 2F2 1 KODV 5 KODV 6 SOST2 2 0F3 KODV 7 2 F1 – соответствует формированию управляющего вектора F2 – поиск начала параметра F3 – формирование вектора параметров.
Таблица описывает модель конечного автомата, состоящую из следующей системы символов X ВВОД, ПРОСИ, РЕДАКТ, УПОРЯД, ЭКР, ПЕЧ SSOST0, SOST1, SOST2 S0SOST0 BF1, F2, F3 FSOST0 3. Приложения. 3.1. Результаты выполнения программы. Пример 1 Пользователем введена следующая программа ВВОДКЛАВИАТУРА ПРОСМКИНГ СОХРСМОИ ДОКУМЕНТЫ УПОРЯДАВТОР
ЭКРВЫВОД Массив ГПО имеет вид 1 2 2 3 3 4 4 5 5 6 YPST 12456 KODV0 – операторы введены грамматически правильно и в нужной последовательности. Пример 2 Пользователем введена следующая программа ПРОСМТЮТЧЕВ ВВОДКЛАВИАТУРА ПЕЧПРИНТЕР YPST 217 KODV8 – операторы введены грамматически правильно, но их последовательность не соответствует ГПО. 3.2. Тексты модулей. program katalog uses printer, crt type zapisrecord priznintegerпризнак блока kodvlvinteger код возврата end masvhstarray 1 40 of string masypstarray 1 80 of integer masprstarray 1 80 of string var vhstmasvhst исходный текст ПВЯ ypstmasypst управляющий вектор prstmasprst вектор параметров kolzapinteger количество записей ПВЯ rashinteger количество расшифрованных слов ПВЯ kointegerключ окончания tablzapis таблица информатора Заглушки procedure input xistring kodvlinteger Процедура ввода данных о книгах begin writelnВыполнилась
процедура ввода. writelnДля продолжения нажмите любую клавишу readkey end procedure prosm xstring kodvlinteger Процедура просмотра данных о книгах begin writelnВыполнилась процедура просмотра. writelnДля продолжения нажмите любую клавишу readkey end procedure korr xstring kodvlinteger Процедура редактирования данных о книгах begin writelnВыполнилась процедура редактирования. writelnДля продолжения нажмите любую клавишу readkey end procedure soxr xstring kodvlinteger
Процедура сохранения данных о книгах begin writelnВыполнилась процедура сохранения. writelnДля продолжения нажмите любую клавишу readkey end procedure uporyad xstring kodvlinteger Процедура упорядочивания данных по книгам begin writelnВыполнилась процедура упорядочивания. writelnДля продолжения нажмите любую клавишу readkey end procedure ekran xstring kodvlinteger Процедура просмотра каталога begin writeln Выполнилась процедура просмотра каталога. writelnIДля продолжения
нажмите любую клавишу readkey end procedure pechat xstring kodvlinteger Процедура печати каталога begin writelnВыполнилась процедура печати каталога. writelnДля продолжения нажмите любую клавишу readkey end Процедуры управляющей программы procedure HELPER procedure OBMEN var vhstmasvhst procedure INFORM tablzapis procedure LEXRAZ vhstimasvhst procedure SINAN ypstmasypst procedure YPRAVL ypstmasypst Конец описаний Модуль обмена procedure OBMEN var vhstmasvhst var kolzapinteger var tablzapis var flboolean iinteger vvodstring begin procedure with tabl do begin with kodvlv0 priznl fltrue writelnввод проем ред сохр обр экр печ 10 while not fl and kodvlv0 do begin while iil readlnvvod if vvodконец then begin первый if flfalse kolzapi-l end первый if else begin первый else if vvodвыход then begin второй if flfalse kodvlv8 kolzapi-l end второй if
else vhstivvod end первый else end while проверка на пустую порграмму if kolzap0 and kodvlv0 then kodvlv16 if kolzap 0 and kodvlv8 then kodvlv4 end with end procedure Модуль лексического разбора procedure LEXRAZ vhstmasvhst kolzapinteger var ypst var prstmasprst var ksinteger var tablzapis var termslarray 1 7 of string терминальный словарь kolslinteger количество слов в терминальном словаре sostinteger состояние системы tekzapstring текущая запись strstring10 i,j,1,k,
number,lengl,1eninteger begin procedure with tabl do begin with prizn2 kodvlv0 rash0 kolsl7 sost0 termsl1 ввод termsl2 проем termsl3 ред termsl4 coxp termsl5 обр termsl6 экр termsl7 печ for il to kolzap do begin первый for tekzapvhsti j i lenlengthtekzap while j len and kodvlv0 do begin первый while strcopytekzap,j,len-j1 if copystr,1,1 then jjl else begin первый else case sost of 0 begin case 0 lengl0 for 11 to kolsl do begin первый for Numberpostermsl1,str if numberl then begin первый if rashrashl prstrash ypstrash1
lengllengthtermsl1 jjlengl sost1 end первый if end первый for if lengl0 then kodvlv4 end case 0 lbegin case 1 if copystr,1, then begin первый if sost2 jjl end первый if else kodvlv6 end case 1 2begin case 2 if copystr,1,1 then begin первый if sost0 jjl end первый if else первый else begin prstrashprstrashcopystr,1,1 jjl end первый else endcase 2 end case end while end else end for if sostl and kodvlv0 then kodvlv5 if sost2 and kodvlv0 then kodvlv7 end with end procedure Модуль синтаксического анализа Procedure SINAN ypst masypst rash Integer Var Tablzapis Var GPO Array1 1,1 2 of Integer NVer Integer KVer Integer I Integer begin With tabl do begin prizn3 kodvlv0 GPO1,1 1 GPO1,2 2 GPO2,1 1 GPO2,2 2 GPO3,1 2 GPO3,2 3 GPO4,1 2 GPO4,2 3 GPO5,1 3 GPO5,2 4 GPO6,1 3 GPO6,2 4
GPO7,1 4 GPO7,2 5 NVerl KVer5 ll While Krash and kodvlv0 do begin If GPOypsti,lNVer then NVerGPOypsti,2 else kodvlv8 iil end If NVer KVer and kodvlv0 then kodvlv16 end end Модуль управления Procedure YPRAVL uprstr masypst prst masprst rash Integer Var tabl zapis Var x String j, kodvl Integer begin
With tabl do begin prizn4 kodvlv0 For jl to rash do Begin x prstj Case uprstrj of 1 inputx, kodvl 2 prosmx, kodvl 3 korrx, kodvl 4 soxrx, kodvl 5 uporyadx, kodvl 6 ekranx, kodvl 7 pechatx, kodvl end If kodvlv kodvl then kodvlkodvlv end end end Модуль информатора Procedure INFORM tabl zapis Блок информ тор begin procedure With tabl do begin with Case prizn of 1 WritelnВыполнился блок обмена 2
WritelnВыполнился блок лексического разбора 3 WritelnВыполнился блок синтаксического анализа 4 WritelnВыполнился блок управления end case WritelnС кодом возврата равным ,kodvlv end with end procedure Модуль помощи Procedure Help begin WritelnСтурктура оператора Writeln Имя модуля параметр WritelnКонец сегмента определяется словом конец WritelnКонец всей программы определяется словом выход readkey end
Начало работы ведущего модуля Begin clrscr HELPER kol While kol do begin while OBMEN vhst, kolzap, tabl INFORM tabl With tabl do begin with If kodvlv 0 then ko0 If kodvlv 8 then begin ifl LEXRAZ vhst, kolzap, ypst, prst, rash, tabl INFORMtabl If kodvlv 5 then begin if2 SINAN ypst, rash, tabl INFORMtabl If kodvlv0 then begin if3 YPRAVLypst, prst, rash, tabl INFORMtabl end if3 end if2 end ifl end with end while readkey end. 3.3. Распечатка экрана. Стурктура оператора Имя модуля параметр Конец сегмента определяется словом конец Конец всей программы определяется словом выход Ввод ПВЯ вводклавиатура простютчев сохрс katalog упорядназвание экрвывод
Выполнился блок обмена С кодом возврата равным О Выполнился блок лексического разбора С кодом возврата равным О Выполнился блок синтаксического анализа С кодом возврата равным О Выполнился блок управления С кодом возврата равным О ввод прос ред сохр упоряд экр печ 4. Список использованной литературы. 1. Экономика, разработка и использование программного обеспечения
ЭВМ УчебникВ.А.Благодатских, М.А. Енгибарян, Е.В. Ковалевская и др М. Финансы и статистика, 1995. 2.Смирнов А.А. Прикладное программное обеспечение Учебное пособиеМосковский государственный университет экономики, статистики и информатики М 2001.