Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов

.pdf
Скачиваний:
19
Добавлен:
20.10.2023
Размер:
8.54 Mб
Скачать

информации С СФ

4

Определение призно-

?но группы

Отбор по признану 3 п повщ * "обл

Отбор по признаку 5 пВиедр

Отбор д coomSemcmBuu У со слодорем проблем

g

Разбиение множество

R на Як и Л у

Отбор из Я, по II признану Луд

Обьединение мно- 12 местВ л'х и Яу

Отбор по параметрам \i3 ^ор.Пзн. Псем

Расчет

карайте-

/5 ристин

Mi

 

Расчет

харантерис -

 

 

 

 

0 *

,

тин М2

 

 

 

 

 

Z Z X Z Z Z Z

 

 

 

 

Г7\

Отбор

язь/нов по

 

 

 

 

 

jg

характеристикам

 

 

 

 

19

0>i

нет,

Отбор

 

аннотации

 

 

27

 

оз Т#

 

 

 

 

 

 

 

• да

 

 

 

 

 

20

Р,

нет,

Организация цинпа

 

 

28

по

языкам

 

 

 

 

 

 

 

 

 

 

150

Расчет харантерис2i тин программ

Написание программы 2^ средствами лзына - о

Организация цинло по аннотациям в Тл Зч

Отбор по предина-

35 тУГ>

Отборов прединатуf2 37

Отбор по прединату [3

33

*

 

 

 

 

 

Обьединение

Тх

и Ту

чо

т^г*ити

 

 

Е

 

 

Конец цинла

по

 

^1

аннотациям

Тх

 

1

 

 

29

Qx= 1

Запись

аннотаций

30

в

Тх

 

 

Запись

аннотаций

31

в

Ту

Конец

цинло по

32

 

язынам

 

 

±

начало цинло по / ^2 аннотациям в Ту

Отбор по прединату jf, 42

Отбор по прединату f2

¥5

Отбор по прединату f3 47

конец цинло

Вывод на печать

h9

Рис. 27. Блок-схема алгоритма выбора.

Рг— будет ли осуществляться выбор из множества невнедрен-

ных языков;

 

 

 

р4 — будет ли активизироваться этап выбора

языковой си­

стемы.

 

 

 

 

 

Блоки схемы имеют следующее содержательное толкование.

Блок

1. Ввод

информации

с СФ. Преобразование, переком­

поновка

и

перевод

информации

стандартной формы

пользователя

с целью доведения ее до стандартной структуры машинного до­ кумента. Если хранение картотек осуществляется на периферий­

ных устройствах, то должен

осуществляться ввод картотеки L n .

Блок № 2. Установление

признака модусной группы, соответ­

ствующей типу алгоритма и области применения по таблице со­ ответствий— ТС и стандартной форме пользователя—СФ, реали­ зуется как результат сравнения групповых признаков. Блок офор­ мляется в виде отдельного программного модуля со стандартным входом; область применимости, тип проблемы, тип алгоритма, ка­ тегория алгоритма. Выход блока: общность языков программиро­

вания

(/70 бщ), область

применения

языков

программирования,

подходящих для описания исследуемой проблемы (Я0 бл).

 

Блок № 3. Отбор языков по признаку

Я = Я0 бщЛ/70 бл-

Из кар­

тотеки

L n отбираются

языки, признаки

«общности»

и

«области

применения»

которых

совпадают с

определенными

на

предыду­

щем этапе. Отобранные языки записываются в поле

А.

 

 

Блок № 5. Отбор языков по признаку

Я в н е др

путем

сужения

выбранного

подмножества языков

по признаку

«внедренность».

Необходимость такого отбора обусловливается тем, что процесс выбора осуществляется с целью определения языка программиро­ вания для практической реализации.

Блок № 7. Отбор языков по словарю проблемы. Необходимость такого отбора обусловлена тем, что язык программирования для описания конкретной проблемы должен содержать все указанные в СФ параметры, определяемые категорией информации, типом

информации, основными категориями

операций, вспомогательны­

ми категориями операций. Метод отбора — по

присутствию, т.

е.

•отбираются все языки программирования, которые содержат

по

крайней мере все категории и типы, указанные в

СФ.

 

 

 

Блок № 9. Разбиение множества А

на Ах

и Ау,

А'=АХ[}АУ,

По

признаку «удобство

языка» ( Я у д )

множество

выбранных

на пре­

дыдущем этапе языков разбивается на два:

 

 

 

 

 

 

Ах—подмножество

языков

множества

А,

у

которых

признак

Яуд указан в явном виде.

 

 

 

 

 

 

 

 

 

 

Ау—подмножество

языков

множества

А,

у

которых

признак

«удобство языка» не указан.

 

Ах

 

 

 

 

Ах)

 

 

 

Блок № 1 1 . Отбор языков

из

(получение

по соответст­

вию признака Я у д

с указанным

в

СФ. Из

подмножества

языков,

у которых признак «удобство языка» указан в явном виде, выби­ раются те, у которых совпадают следующие признаки с указанны­ ми в СФ:

152

а) нотация языка программирования; б) доступность категории пользователя; в) минимальное время изучения.

Блок № 12. Объединение множеств Ах и Ау. Результатом объ­ единения является подмножество отобранных языков по признаку «удобство языка». Этот признак отличается от других признаков тем, что если он присутствует в аннотации, то по нему осуществля­ ется отбор. Если в картотеке существует язык, в аннотации кото­ рого не указан этот признак, то этот язык заранее считается до­ пустимым к использованию

Блок № 13. Отбор языков по параметрам Я о р , Я э н т , Я с е м ,

вво­

димым из третьей части СФ.

 

 

Блоки № 17, 16. Модули

расчета оценочных характеристик

М ь

М2 . Программные модули построены в соответствии с набором требований, которые должны быть присущи «хорошему» языку программирования для некоторого класса проблем. Конструктив­

но модули Mi и М 2 отличаются только методом расчета

оценочных

характеристик.

Если в СФ указана дополнительная

информация

по алгоритму,

то они рассчитываются

по заданным

формулам

(Mi), иначе используется усредненная

информация

о

классе А,

к которому принадлежит проблема Ах 2 ).

Блок № 18. Отбор языков по оценочным характеристикам пу­ тем сравнения расчетных характеристик, полученных программны­ ми модулями Mi или М2 .

Блок № 21. Написание программ средствами языка програм­ мирования. Написание алгоритмов выполняется вручную. После этого определяются параметры программ для расчета оценочных характеристик и перехода к блоку № 22.

Блок

№ 22. Расчет оценочных характеристик программ.

Блок

№ 23. Вывод

на печать. Этот блок получает управление

только от логического

блока № 6 в случае, если из выбранных языков

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

Блок № 26. Ввод картотеки языковых систем — TL.

Блок № 27. Отбор из картотеки TL аннотаций по отобранным языкам. Все языковые системы отсортированы по языкам про­ граммирования, из которых они созданы.

Блоки № 28—32. Цикл, организующий разбиение множества языков на два подмножества:

а) языки программирования, представленные одной системой компиляции;

б) языки программирования, представленные множеством си­ стем компиляции.

Блоки № 34—40. Цикл организующий отбор оптимальных язы­ ковых систем относительно всех внедрений языка программиро­ вания. Цикл организуется по всем языкам, отобранным в преды­ дущем цикле. Он имеет целью определения оптимальной языковой

153

системы из всех возможных внедрений конкретного языка. Оценка компиляционных систем осуществляется по трем оценочным функ­ циям, которые в алгоритме условно названы предикатами — уь

Y2. Y3-

Блоки № 41—47. Цикл, организующий отбор оптимальной язы­ ковой системы среди оптимальных внедрений языков из отобран­ ного множества на первом и втором этапах. Критериями оценки являются уь Y2, уз-

Таким образом, суть алгоритма априорного выбора языка про­ граммирования сводится к сравнению характеристик задач и ал­ горитмических языков, заданных в виде набора параметров. В про­ цессе сравнения выбирается тот язык, число характеристик кото­ рого наиболее полно совпадает с характеристиками решаемой проблемы. Достижение оптимальности выбора основывается на учете наиболее существенных характеристик, что позволяет выб­ рать не один, а несколько языков. Так как пользователь может не знать всех языков, он имеет возможность выбрать язык по свое­

му усмотрению. Такой подход к выбору языка способствует

уско­

рению процесса реализации проблемы.

 

§ 6. 3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ АПРИОРНОГО

 

ВЫБОРА ЯЗЫКОВ ДЛЯ МАШИНЫ «МИНСК-32»

 

В данной работе рассматривается программа реализации пер­

вого этапа выбора языков программирования — априорного

выбо­

ра. Это обусловливается тем, что на этапе проектирования

меха­

низированной обработки информации отдельных задач и на этапе проектирования автоматизированных систем управления должен быть произведен предварительный выбор языка для алгоритми­ зации заданного класса задач.

Такой выбор может быть произведен на основании характерис­ тик класса решаемых задач и характеристик языков программи­ рования. Так как класс решаемых задач известен, соответствую­ щие характеристики их могут быть получены.

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

Апостериорный выбор языков программирования может быть осуществлен только после апробации языка с учетом соответст­ вующих оценочных характеристик.

Исходными данными для априорного выбора являются стан­ дартная форма пользователя СФ и анкета языка АЛ. Для реали­ зации алгоритма априорного выбора на машине «Минск-32» стан­ дартные формы пользователя и анкеты языков были заполнены на основе экспертных оценок.

154

Стандартная форма пользователя (СФ)

1.Название задачи

2.Область экономической информационной системы (ЭИС): а) плановая;

б) учетная; в) статистическая.

3Тип проблемы:

1)обработка ассоциативных списков;

2)информационный поиск, диалоги;

3)обработка статистических списков;

4)статистика и моделирование;

5)численный анализ;

6)конкретная математика;

7)обработка документов;

8)обработка простых списков;

9)конкретное моделирование;

10)проектирование.

4Тип и категория алгоритма:

1)нечисленный

а)

логический

стохастический

б)

обработка данных

эвристический

в)

 

детерминированный

2)численный.

5.Время жизни проблемы (модифицируемость):

1)периодическая;

2)случайная;

3)единовременная;

4)модифицированная.

6Категория пользователя:

1)системщик-программист;

2)программист;

3)аналист.

7.Словарь проблемы.

А.Информация проблемы. 1. Категория:

а) множество массивов; б) массивы над структурами;

в) множество над списками; г) массивы над строками; д) массивы над векторами; е) массивы над скалярами; ж) структура (запись); з) строки (вектор, список); и) скаляр

2Тип:

а) логический; б) целый;

в) вещественный; г) комплексный; д) текстовый; е) битовый.

БОперации в проблеме.

1.Основная категория:

а) внешняя организация массивов над структурами; б) внутренняя обработка компонентов массива; в) организация алгоритма.

2.Вспомогательная категория:

а) внешнее обслуживание алгоритма; б) внутреннее обслуживание алгоритма.

155

Анкета языка на этапе априорного выбора (АЛ)

1.Название языка.

2.Отношение к области применения: а) численный анализ;

б) обработка документированной информации; в) обработка строк и списков; г) статистика и моделирование;

д) управление проектированием работ; е) конкретная математика;

ж) информационный поиск, система диалога; з) новые специальные области

3.Отношение к ориентации:

а) проблемно-ориентированный; б) узкоспециализированный; в) проблемно-определяющий;

г) проблемно-описывающий, директивный.

4.Отношение к общности: а) общего назначения;

б) автоматизация конкретных проблем.

5.Отношение к модификации: а) открытый; б) закрытый.

6.Отношение к этимологическому признаку: а) алгоритмический; б) программирующий; в) языковая система.

7.Отношение к семасиологическому признаку: а) процедурный; б) функциональный.

&.Отношение к лексико-морфологическому признаку: а) язык-ядро; б) язык-оболочка;

в) языковая система.

•9. Нотация:

а) подмножественных языков; б) числовая; в) символьная.

10.Какую внедренность имеет: а) внедрен; б) не внедрен.

11.Доступность для пользователя (категория пользователя): а) системщик-программист; б) программист; в) аналист.

12.Как много времени требуется на изучение: а) для аналиста; б) для системщика-программиста.

13.Тип и категория алгоритма:

1)нечисленный

а)

логический

стохастический

б)

обработка данных \

эвристический

в)

 

 

2) численный.

детерминированный

Структура представления исходной информации в машине

.«Минск-32» имеет следующий вид.

156

Структура стандартной формы пользователя

Цифры имеют следующее значение:

 

 

 

1 —область применения языка

программирования;

2 — категория

пользователя;

 

 

 

 

3 — нотация;

 

 

 

 

 

 

4 — этимологический признак;

 

 

 

 

5 — категория информации проблемы;

 

 

 

6 — тип информации проблемы;

 

 

 

 

7 — основные операции проблемы;

 

 

 

8 — вспомогательные операции проблемы.

 

 

 

 

 

 

Структура анкеты языка

 

 

 

 

И

 

М

 

я

 

 

Я

 

3

 

ы

 

к

 

А

 

1

1

1

1

2

3

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

4

 

 

5

 

6

7

 

\ / \

 

1

1

1

 

 

 

 

8

1

1

1

10

11

12

 

'

' я

'

 

W

Цифры имеют следующее значение:

 

 

 

1 —область применения языка

программирования;

2 — общность языка;

 

 

 

 

 

3

— внедренность языка;

 

 

 

 

4

— категория информации;

 

 

 

 

5

— тип информации;

 

 

 

 

 

6

— основные операции

языка;

 

 

 

 

7

— вспомогательные операции языка;

 

 

 

8

— время изучения для

аналиста;

 

 

 

9

— время изучения для

системщика-программиста;

10

— категория

пользователя;

 

 

 

 

11

— нотация языка;

 

 

 

 

 

12

— этимологический признак.

 

 

 

 

157

Структура документа TL не рассматривается, так как предпо­ лагается, что для каждого языка имеется только один транслятор, т. е. одна система программирования.

Реализация алгоритма априорного выбора на машине «Минск-32» организуется системой программ, организованных по модульному принципу. Система программ состоит из шести мо­ дулей:

1.Основная программа — СС.

2.Программа отбора по признаку — СП-1.

3.Программа вывода на печать — СП-2.

4.Программа печати заголовка — СП-3.

5.Программа диалога машины с оператором—ОБМПМ.

6.Программа вызова модулей — ОБРАЩ.

Основная программа осуществляет отбор языков в соответст­ вии с заданным множеством их характеристик. Укрупненная блок-

схема отбора, соответствующая основной

программе,

приведена

на рис. 28.

 

 

 

Программа вывода на печать обеспечивает печать

имен язы­

ков, отобранных на определенном этапе

выбора.

Укрупненная

блок-схема алгоритма этой программы приведена

на рис. 29. Пе-

оНачало

СФ и оннет языноВ

Перевод из сим­ вольной системы

j в десятичную

Отбор по облас­ ти применимости

Отбор внедрен­ ных язынов

Отбор по „ катего­ рии информации "

Отбор по призна­ ку . основные one - рации"

Отбор по призна - ну ., всломоготель -

,ные операции"

Отбор язынов с у на - заноем „нотация" „категория польза - вате ля, "„ минимоль -

ное время"

10

Отбор подкатего­ рии пользователя' 17

Отбор язынов с ми­ нимальным време- ^ нем изучения

Отбор портимо - логичесному при-

14 знанУ"

15 Конец

Отбор подтипу

 

информации"

Отбор язынов по

 

призно/'у.. нотации

Рис. 28. Блок-схема основной программы СС

158

чать имен языков производится построчно. В каждой строке со­ держится три имени. Место расположения имени в строке опре­ деляется указателем Т [Ж].

U-U+1

 

3

 

 

Ж-=Ж+1

 

10

1

Формирование индек­

 

Т[Ж]-

= имя

сов и Сгок--=Сганх

» языно

[ U]

 

Формирование индексов и

if Сгак••= Сгак У

Сгак ; = Сгак-3; •(/•• = О

Сгак / •• = Сгак + 3: - 0

(Ту* Сгак 1^3

т

Рис. 29. Блок-схема вывода на печать — СП2

Программа отбора осуществляет отбор по какому-либо призна­ ку, соответствующему одной характеристике языка. Укрупненная

блок-схема алгоритма этой программы

приведена на рис. 30.

В блок-схеме приняты следующие обозначения:

 

 

К1 —константа, определяющая порядок действий;

 

К2 — константа логического выделения;

 

 

ШАГФП — указатель

ячейки

стандартной формы пользовате­

ля, содержащей заданный

признак;

 

 

 

ШАГАН — указатель

ячейки

анкеты

языка,

содержащей

за­

данный признак;

 

 

 

 

 

АЛ — поле исходной информации анкеты языка;

 

П Р И З П — указатель

ячейки

исходного поля

отобранных

язы­

ков;

 

 

 

 

 

СЧАК — счетчик анкет языка.

159

Соседние файлы в папке книги из ГПНТБ