Файл: Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2024
Просмотров: 72
Скачиваний: 0
Исходя из результатов данного этапа отбора оператор может либо продолжить отбор, либо отказаться от результатов преды дущего отбора. Это достигается наличием двух рабочих полей АЛ и АР. Отбор происходит из языков, находящихся в одном по ле, а отобранные по заданному признаку языки помещаются в другое поле. Таким образом, на каждом этапе отбора имеются два множества языков: множество языков, из которого производился отбор, и множество отобранных языков. Задавая признак поля, содержащего то или иное множество языков, оператор может уп равлять процессом отбора.
В/од |
из основной |
Обращений, н СП-2 |
СП-1 |
|
j |
программы |
|
||
5 |
|
|
||
|
|
|
|
|
|
|
Обращение н ОБМПМ |
СП-2 |
|
|
|
Выход |
в основную |
|
|
|
j |
программу |
|
Обращение н cn-i
Рис, 316. Блок-схема программы обращения — ОБРА Щ
По окончании отбора в одном из полей будет находиться ин формация о языках, которые удовлетворяют требованиям пользо вателя. Эта информация и выдается на печать.
Укрупненная блок-схема программы обращения приведена на рис. 31 б. Эта программа ОБРАЩ обеспечивает вызов соответст вующих программ системы при работе основной программы.
Укрупненная блок-схема программы диалога приведена на рис. 32. В этой блок-схеме символом С обозначена ячейка, содер жащая результат отбора, а символом X — ячейка, в которую по мещается ответ оператора.
Поскольку система программ, реализующих алгоритм априор ного выбора языков, построена по модульному принципу, то в процессе работы блоков основной программы происходит обраще ние к другим модулям системы. Так, в процессе отбора по какомулибо признаку каждый блок основной программы, организующий этот отбор, обращается ко всем модулям системы. В соответствии с этим операция обращения представлена также в виде самостоя тельного модуля.
И. Заказ 4230. |
161 |
|
Вход из прогроммь/ |
/ Печать с от дет |
, |
. ОЬРЯЩ ' |
оператора В ячейке х. |
Печать с^твет |
|
изменение |
^ оператора В ячейке х^ |
8 |
призп |
|
Ф |
|
|
|
|
|
|
В оздрат В основную |
|
9 |
программу |
Рис. 32. Блок-схема диалога с машиной — ОБМПМ
Для возможного использования данного алгоритма в других машинах и, в частности, в машинах, имеющих транслятор с языка АЛГЭК-С, ниже приведен алгоритм априорного выбора в этом языке:
КЗ:
К4:
M l :
М2:
К5:
нач |
текст |
А, Б вид 'С(128)'; |
текст С вид 'С(18)'; |
цел мае СФ [4]; |
|||||||||
сост |
мае АЛ |
[30]. (текст |
Т1 вид 'С(12)', цел мае M l [6]); |
||||||||||
сост |
мае АР |
[60]. (текст |
Т вид 'С (12)', |
цел мае М [6]); |
|||||||||
цел К П , КОБЛМ, ОБЛМ, ОБЩ, П Р И З П , СЧ, СЧ1, КОНСТ, |
|||||||||||||
П Р И З Ш , |
СЧЛ, |
|
К21, К31, |
К41, Д; |
|
|
|
|
|||||
переключатель Р : Н 1 , Н2, |
НЗ, И4, Н5, Н6, |
Н7, Н8; |
|||||||||||
О Б Л П : =978656; |
|
О Б Щ : =917504; ТС 1 : = 14600474540; |
|||||||||||
ТСЗ: = 14614721476; ТСЧ: =417504; ТС5: =974848; |
|
|
|||||||||||
КВРА: = 13938389956; |
К В Р Б : =267386880; |
|
|
|
|||||||||
библ ('ввод |
Г, |
'000', |
АЛ, |
46); |
библ |
('ввод |
3', '0', |
СФ); |
|||||
для |
И : = 1:128 цикл нач А |
[элем |
И ] : = |
'—'; Б |
[элем |
И ] : = |
|||||||
кон; |
С Ч Л : = 0 ; |
|
|
|
|
|
|
|
|
|
|
||
для |
И |
• 1 : 30 |
цикл |
нач если АЛ [И] . Т1 = |
|
|
то |
||||||
на МГ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
С Ч Л : = С Ч Л + 1 ; |
кон; |
|
|
|
|
|
|
|
|
||||
К О Б Л П : = СФ [1] Л О Б Л П ; К1: = 1; С Ч : = 0 ; |
|
|
|
||||||||||
для |
И : = Г:СЧЛ |
|
цикл нач |
|
|
|
|
|
|
||||
если |
АЛ [И] . M l |
[1] |
Л О Б Щ = О Б Щ |
T o j i a |
М2; |
|
|||||||
если |
А Л [ И ] . M l |
[1] |
Л К О Б Л П ^ К О Б Л П |
то |
на МЗ; |
||||||||
АР |
[ К 1 ] : = А Л [4]; СЧ: = С Ч + 1 ; кон; |
|
|
|
|
||||||||
П Р И З П : = 1; П Р И З П 1 : = 1; С: = ОБЛ П Р И М —_Я_универ-е; |
|||||||||||||
О Б Р А Щ |
(666,0); |
|
|
|
|
|
|
|
|
|
|
||
ШАГАН: = 1'; |
КОН.ФП: =4096; |
|
|
|
|
|
|||||||
С:='внедренные |
|
|
|
языки'; |
О Б Р А Щ (77,0); Д : = 1; на Н; |
162
H I : |
ШАГФП: = 1; |
Ш А Г А Н : = 2 ; |
С : = ' т н п |
|
и н ф о р м а ц и и . ^ |
'; |
|||||||||||
|
О Б Р А Щ (0,7798784); |
Д : = 2 ; |
на |
Н; |
|
|
|
|
|
|
|||||||
Н2: |
С: ='категория — |
информ-и; |
|
|
|
|
|
|
|
|
|
||||||
|
О Б Р А Щ (0,32061259776); |
Д : = 3 ; |
на Н; |
|
|
|
|
||||||||||
НЗ: |
С: = |
'основные |
|
|
операции'; |
|
|
|
|
|
|
|
|||||
|
О Б Р А Щ |
(0,114688); |
Д : = 4 ; |
на |
Н; |
|
|
|
|
|
|
||||||
Н4: |
С:='вепом—ые |
|
|
операции'; |
|
|
|
|
|
|
|
|
|||||
|
ОБРАЩ |
(0,1792); Д : = 5 ; |
на |
|
Н; |
|
|
|
|
|
|
|
|||||
Н5: |
если П Р И З П = 1 |
то на М4; П Р И З П 1: =31 ;_на М5; |
|
|
|||||||||||||
М4: |
П Р И З П 1 : = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
М5: |
С Ч 1 : - 0 ; для И: = 1 : С4 цикл, нач. |
|
|
|
|
|
|
||||||||||
|
К О Н С Т : = А Р |
[ П Р И З П ] . М |
[3]ЛТС1; |
|
|
|
|
|
|||||||||
|
если |
КОНСТ |
Л Т С З = 0 |
то |
на |
Мб; |
|
|
|
|
|
||||||
|
если |
КОНСТ |
Л Т С Ч = 0 |
то |
|
на_ Мб; |
|
|
|
|
|
||||||
|
если |
КОНСТ |
Д Т С 5 = 0 |
то" на |
Мб; |
|
|
|
|
|
|||||||
|
АР [ П Р И З П 1 ] : = А Р [ П Р И З П ] ; П Р И З П 1 : = П Р И З П 1 + 1; |
|
|||||||||||||||
|
С Ч 1 : = С Ч 1 + 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Мб: |
кон; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С : = ' у к а з а н ы |
|
Т, |
НОТ, |
КАТ'; |
ОБРАЩ |
(666,0); |
|
|||||||||
|
Д : = 6 ; на |
Н; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Н6: |
если |
П Р И З П ^ П Р И З П ! |
то на |
Н8; ШАГФП: = 1; |
Ш А Г А Н : = 3 ; |
||||||||||||
|
С:='совпадает |
|
|
нотация'; |
О Б Р А Щ |
(0,114688); Д : = 7 ; |
на Н; |
||||||||||
Н7: |
КОНСТ: = С Ф |
[1] Л 917504; |
|
|
|
|
|
|
|
|
|
||||||
|
С: = 'категория — пользв-я'; О Б Р А Щ |
(0, КОНСТ); |
|
|
|||||||||||||
М7: |
если |
КОНСТ=262144 |
то на М8; КОНСТ: = К В Р Б ; |
на_М9; |
|
||||||||||||
М8: |
КОНСТ: = К В Р А ; |
|
|
|
|
|
|
|
|
|
|
|
|
||||
М9: |
С Ч 1 : = А Р |
[ П Р И З П ] . М [3] Л |
КОНСТ; К21: = П Р И З П + 1 ; |
|
|||||||||||||
|
К 3 1 : = С Ч — 1 + П Р И З П ; |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
для |
И: = К21:К31 |
цикл нач К 4 1 : = А Р |
[И] . М [3] Л |
КОНСТ; |
' |
|||||||||||
|
если |
К П Ж 4 1 |
|
то на |
М10; |
|
К И : = К 4 1 ; |
|
|
|
|
||||||
М10: |
кон; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кб: |
если |
П Р И З П = 1 |
то |
на |
М П ; П Р И З П 1 : = 3 1 ; |
на |
М12; |
|
|||||||||
М П : |
ПРИЗП1:1: = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
М12: |
С Ч 1 : = 0 ; |
для |
И: = П Р И З П : К 3 1 |
цикл |
|
|
|
|
|
||||||||
|
нач |
если |
АР |
[И] . М |
[3] Л К О Н С Т ^ К П |
то на_М13; |
|
||||||||||
|
А Р " [ П Р И З П 1 ] : = А Р |
[И] ; П Р И З Ш : = П Р И З П 1 + 1; С Ч 1 : = С Ч 1 + 1; |
|||||||||||||||
М13: |
кон; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С ='языки |
С |
|
мин |
|
время |
|
'; О Б Р А Щ |
(666,0); |
|
|||||||
|
Д : = 8 ; на |
Н; |
|
|
|
|
|
|
|
|
|
|
|
т М14; |
|
||
Н8: |
С:='этимологический |
|
|
'; О Б Р А Щ |
(0,1792); |
|
|||||||||||
Н : |
библ |
('стоп', X ) ; |
библ |
('набор', X I ) ; |
|
|
|
|
|
||||||||
|
если |
Х1 = 1 то |
на М15; если |
Х ^ 1 |
то |
на М14; |
|
|
|||||||||
|
"ПРЙЗП: = П Р И З П 1; |
С Ч : = С Ч 1 ; |
|
|
|
|
|
|
|
||||||||
М15: |
«а Р |
[ Д ] ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
М14: |
кон; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
проц О Б Р А Щ |
(У1, У2); |
знач |
У1, У2; |
цел |
У1, У2; |
|
||||||||||
|
нач |
цел |
СЧ2, |
СЧЗ; |
.переключатель |
Р1:П, |
П1; |
|
|
||||||||
К2: |
Б [элем 30:47] : = С ; |
библ |
('АЦПУ', '—', '—', '—\ Б, ' — ' ) ; |
|
|||||||||||||
|
если |
У1=666 |
то _на |
Л 1 ; |
если |
У 1 = 7 7 |
то_ на Л2; |
|
|||||||||
К 1 : |
К О Н Ф П : = С Ф |
|
[ШАГФП]ЛУ2; |
|
|
|
|
|
|
|
|||||||
Л2: |
СЧ1: = 0; если |
П Р И З П = 1 |
то на ЛЗ; П Р И З П 1:== 31 ;_н_а Л4; |
|
|||||||||||||
Л З : |
П Р И З Ш : = 1; В : = 0 ; |
|
|
|
|
|
|
|
|
|
|
|
|
}63
Л 4 - |
для |
И : = 0 : С Ч |
цикл |
нач |
|
|
|
|
|
||
|
"ёТли |
АР |
[ И + П Р И З П ] . М [ШАГАН] Д К О Н Ф П ^ К О Н Ф П |
то_н_а |
Л5; |
||||||
Л 5 : |
— 1 : = С Ч 1 |
+ |
1; АР [ П Р И З П 1 + В ] : = А Р [ П Р И З П + И ] ; В : = В + 1 ; |
|
|||||||
кон; |
|
|
|
|
|
СЧ¥=1 3£„Н Л 9 ; |
|
|
|||
Л 1 : |
если |
С Ч 1 = 0 |
то _на Л6; если |
|
|
||||||
|
Х:1;_на Л7; |
|
|
|
|
|
|
|
|
||
Л 6 : |
Х : = 0 ; н а П ; |
|
|
|
|
|
|
|
|
||
Л 9 : |
Х : = 7 ; |
|
|
|
|
|
|
|
|
|
|
Л7 - |
С Ч 2 - = С Ч 1 - |
Д - = 2 ' |
|
|
|
|
|
|
|||
П 1 : |
С Ч 2 - = С Ч 2 — 3 ; если СЧ2>0_то_на Л8; |
С Ч З : = С Ч 2 + 3 ; Д : = 1; на |
Л9; |
||||||||
Л 8 : |
С Ч : = 3 ; К З : = Т + П Р И З П 1 ; К 1 : = 2 0 ; К 2 : = 3 1 ; С Ч З : = ^ С Ч З - 1 ; |
|
|||||||||
|
_для |
И : = 0 : С Ч З |
цикл |
нач |
В : = И х 2 0 ; |
А [элем К 1 + В : К 2 + В ] : = АР |
|||||
|
[КЗ]. Т1; |
|
|
|
|
|
|
|
|
|
|
|
К З : = К З + 1 ; |
кон; |
|
|
|
|
|
|
|||
|
К 1 : = 4 0 ; К 2 : = 5 1 ; С Ч З : = 2 ; |
|
|
|
|
|
|||||
Л Ю : |
А [ э л е м _ К 1 : К 2 ] : = ' |
|
|
|
; М : = К 1 + 2 0 , |
|
|||||
|
К 2 : = К 2 + 2 0 ; |
|
|
|
|
|
|
|
|
||
|
С Ч З : = С Ч З — 1 ; |
если |
СЧЗ¥=0 |
то |
на |
ЛЮ; |
|
|
|||
|
библ |
('АЦПУ', |
А, ' — ' ) ; на |
Р1 |
[ Д ] ; |
|
|
|
|||
П : |
J<OH; |
|
|
|
|
|
|
|
|
|
|
Так как в АЛГЭК-С невозможно обращение из какой-либо про |
|||||||||||
цедуры в другую, то создана искусственная процедура |
в поле са |
мой программы. Эта процедура начинается с метки Н и заканчи вается меткой М14. Возврат на нужное место в основной програм ме осуществляется с помощью переключателя Р. Эта процедура осуществляет выдачу содержимого ячейки х на сумматор и оста нов программы.
Оператор просматривает распечатанные имена языков данного
этапа отбора; если языков больше одного, оператор |
просматрива |
ет имена языков, отобранных на данном этапе. Если |
выбыли наи |
более известные языки программирования и пользователь не удов летворен результатами данного этапа, то отбор языков на следую
щем этапе осуществляется из поля языков предшествующего |
эта |
|
па. В этом случае оператор должен занести в сумматор |
единицу, |
|
означающую неудовлетворительность отбора. Если в сумматор |
за |
|
носится нуль, то отбор продолжается из языков нового поля. |
|
|
Если выполнение программы необходимо закончить, то в сум |
||
матор записывается 0, в счетчик адресов добавляется 1, |
нажима |
|
ется кнопка «пуск», процедура анализирует содержимое |
суммато |
|
ра и выполняется описанный выше порядок действий. |
|
|
Программе обращения ОБРАЩ в АЛГЭК-программе соответ |
||
ствует специальная процедура, которая выполняет |
все |
ее |
функции. |
|
|
Процедура ОБРАЩ содержит два параметра: У\— параметр, |
||
определяющий порядок действия в процедуре, У2 — константа |
вы |
деления параметра из ячейки анкеты. Процедура выполняет сле дующие действия:
1) выделение оператором с меткой К1 содержимого ячейки СФ,
164
номер которой содержится в ячейке ШАГФП, и записывает его в рабочую ячейку КОНФП;
2) определение поля |
с |
отобранными языками. |
Указатель |
по |
|
л я — ячейка |
ПРИЗП . Из |
поля языков выбираются |
те, которые |
со |
|
ответствуют |
данному этапу |
отбора. |
|
|
Количество отобранных языков подсчитывается в ячейке СЧ1. Номер ячейки анкеты, в которой указан признак отбора на дан ном этапе, содержится в ячейке ШАГАН. Отобранные по данному, признаку языки переписываются в другое поле.
В АЛГЭК-программе этой операции соответствует участок с Л2 по Л5;
3)печать наименования этапа выбора, которое определяется текстовой величиной С. В алгоритме этому соответствует участок, имеющий метку К2;
4)определение количества отобранных языков для организа ции диалога оператора с машиной с целью управления ходом от бора. Если количество языков равно нулю, то Х: = 0, если число
языков равно единице, то X: |
= 1 , и если языков больше |
одного, то |
|||
Х: = 7. Этой части |
процедуры |
соответствует |
участок с Л1 |
по Л7; |
|
5) печать имен |
языков нового поля, если содержимое |
счетчика |
|||
не равно Н У Л Ю . Этой части соответствует |
участок алгоритма с Л7 |
||||
по П. |
|
|
|
|
|
В зависимости от значения параметра У\ устанавливается сле |
|||||
дующий порядок выполнения процедуры: |
|
|
|
||
при Уi = 0 выполняется вся |
процедура; |
|
|
|
|
при Уi = 77 пропускается |
первый этап. |
Содержимое |
ячейки |
||
КОНФП задается в основной программе; |
|
|
|
||
при У] = 666 пропускаются первый и второй этапы. |
|
|
|||
В основной программе цикл с меткой КЗ заполняет |
пробелами |
||||
строки печати заголовка (А) и строку имен языков (Б). |
|
|
|||
Цикл с меткой |
К4 подсчитывает количество языков, |
введенных |
|||
в поле А. |
|
|
|
|
|
Участок с метки M l по метку М2 обеспечивает отбор |
|
в рабочее |
поле тех языков, которые удовлетворяют параметру «область при менения», заданному в стандартной форме, и параметру «универ сальность». Константа ОБЛП является выделителем из СФ «об ласти применения», константа ОБЩ — признака «общности».
После отбора производится установка признака поля, и имена отобранных языков печатаются с помощью обращения к процеду
ре ОБРАЩ. |
|
|
|
|
|
|
|
|
Участок |
алгоритма |
от |
метки |
К5 по |
метку |
H I |
соответствует |
от |
бору внедренных языков. |
|
|
|
|
|
|
||
Участок |
алгоритма |
от |
метки |
H I по |
метку |
Н2 |
обеспечивает |
от |
бор языков по признаку «тип информации».
Участок алгоритма с метки Н2 по НЗ соответствует отбору языков по признаку «категория информации».
Участок алгоритма с метки НЗ по Н4 обеспечивает отбор язы ков по признаку «основные операции».
165