- •5033.4350.0000-Пз
- •Введение
- •Теория алгоритмов
- •Исходные положения
- •Общее содержание второй части задания
- •Виды текстов алгоритмов
- •Ациклические двухполюсные структуры алгоритмов
- •Исходные условия
- •Комплект текстов алгоритмов
- •Этап э1: Подготовка стандартной полной формы формулы
- •Стандартная форма формулы алгоритма
- •Этап э2: Построение структурной схемы
- •Структурная схема алгоритма
- •Э21: Построение основной схемы – без оболочек
- •Э22: Группирование элементов
- •Э23: Проверочная нумерация оболочек
- •Э25 Повышение явного соответствия формул и схем
- •Э251 Явная операция разделения потоков
- •Э252 Разделение парных операций
- •Э253 Двухмерные структурные формулы
- •Э254 Псевдографика структурной схемы
- •Э255 Набор схемы графического тренажера
- •Этап э3: Работа с временной диаграммой алгоритма
- •Э31 Задание длительности исполнения команд
- •Э32 Построение временной диаграммы сетевого типа
- •Э33 Графический расчет длительности алгоритма
- •Э34 Аналитический расчет длительности алгоритма
- •Э4: Подготовка вербальных текстов алгоритма
- •Вта: Вербальные тексты алгоритмов
- •Дополнительные функциональные обозначения
- •ИнФ: Инфиксная форма
- •ИнФ': Неявная инфиксная форма
- •ПрФ: Префиксная форма
- •Ациклические многополюсные структуры алгоритмов
- •Исходные условия
- •Комплект текстов алгоритмов
- •Этап э1: Подготовка стандартной полной формы формулы
- •Стандартная форма формулы алгоритма
- •Этап э2: Построение структурной схемы
- •Структурная схема алгоритма
- •Построение основной схемы (без оболочек)
- •Этап э3: Работа с временной диаграммой алгоритма
- •Э31 Задание длительности исполнения команд
- •Э32 Построение временной диаграммы сетевого типа
- •Э33 Графический расчет длительности алгоритма
- •Э34 Аналитический расчет длительности алгоритма
- •Э4: Подготовка вербальных текстов алгоритма
- •Вта: Вербальные тексты алгоритмов
- •Дополнительные функциональные обозначения
- •Переключательные ациклические структуры алгоритмов
- •Концептуальная модель команды
- •Функции модели
- •Блок функций аппаратной модели команды
- •Индексация обозначений
- •Работа модели
- •Уточнение функции индикации
- •Работа с программной моделью команды в средеMathLab
- •Вывод схемы модели на экран
- •Построение временной диаграммы
- •Настройки дополнительных параметров диаграммы
- •Концептуальная модель алгоритма
- •Ациклические двухполюсные структуры алгоритмов
- •Модельная схема алгоритма
- •Функциональная система алгоритма
- •Программная модель алгоритма в средеMathLab
- •Подготовка файла модели
- •Формирование схемы моделиEnvMpma
- •Построение временной диаграммы
- •Заключение
Этап э3: Работа с временной диаграммой алгоритма
Порядок выполнения – подэтапы Э31..Э34 этапа Э3
Э31 Задание длительности исполнения команд
РМУ 1.15 Задать (выписать) массив длительности исполнения команд.
ДИК: Длительности mziисполнения командZi:
-
mz1
mz2
mz3
mz4
mz6
mz8
40
20
30
60
30
10
РМУ 1.16 1) Данные назначаются самостоятельно (в условных единицах).
2) Целесообразно отразить структурные особенности алгоритма при его исполнении во времени (это зависит от соотношения длительности команд).
Э32 Построение временной диаграммы сетевого типа
РМУ 1.17 Выполняется полное построение ДИА сетевого типа, включая:
шкалу времени t;
линии zi жизненного цикла всех объектов Zi (по порядку номеров i);
линию ai жизненного цикла объекта Ai (полный цикл);
вертикальные (и наклонные) линии причинно-следственных связей событий;
эпюру загрузки ресурсов ei объекта Ai – занятые исполнители (число занятых процессоров процессов).
ДИА: Диаграмма исполнения алгоритма // Системный стандарт
ГИ: Горизонтальное исполнение
//A910 =(((Z1Z2(Z6V(Z11Z8)))&(Z3&1Z4))Z1)=
//A910 = (((Z1 – Z2 – (Z6 V (Z1 – 1 – Z8))) & (Z3 – &1 – Z4)) – Z1)
РМУ 1.22 В принятом системном стандарте обеспечивается полный изоморфизм (взаимное структурное соответствие) структурных формул, структурных схем и сетевых временных диаграмм параллельных алгоритмов.
ДП: Диаграмма последовательностей // Стандарт UML
ВИ: Вертикальное исполнение
Э33 Графический расчет длительности алгоритма
// общая длительность mai цикла исполнения алгоритма Ai
Обозначения:
mai': Длительность исполнения алгоритма Ai – замер по итоговой линии ai
mai": Длительность исполнения алгоритма Ai – графический расчет
(выполняется далее)
Графическое определение длительности mai' иmai" алгоритма:
а) Непосредственный отсчет размера (длины) линии по графику
ma910' = 200
б) Графический расчет размера (длины) линии.
ma910" = ((mz1 +mz2) +mz1) + (mz4 +mz1) =
= ((40 + 20) + 40) + (60 + 40) =
= (60 + 40) + (60 + 40) =
= 100 + 100 = 200
Проверка результатов mai' =?mai":
// данные совпадают (mai"' = mai") или не совпадают (mai"' mai") .
(ma910' = 200) = (ma910" = 200) – равенство выполняется.
Вывод: данные графического отсчета и расчета совпадают.
// Если данные не совпадают, то предпринимаются меры:
// поиск и устранение причин несоответствия.
Э34 Аналитический расчет длительности алгоритма
Анализ:
Результаты
Язык
синтаксис
семантика
прагматика – субъекты (автомат, персонал), присубъекты
ручные средства
автоматизация
Выводы
Э4: Подготовка вербальных текстов алгоритма
Вта: Вербальные тексты алгоритмов
Формируются програмоподобные вербальные тексты алгоритмов.
РМУ 1.23 1) Подобие вербальных текстов алгоритмов программным языкам определяется по некоторым ключевым концептуальным аспектам.
2) Это не означает их абсолютного тождества. Возможны дополнительные различия разных версий программных языков, фирменные особенности и т.п.
Дополнительные функциональные обозначения
ООА: Общее обозначение алгоритма
alg A140: ya140 = Fa140(xa140)
СКА: Система команд алгоритма
Z1:yz1 :=Fz1(xz1)
Z2:yz2 :=Fz2(xz2)
Z3:yz3 :=Fz3(xz3)
Z4:yz4 :=Fz4(xz4)
Z5:yz5 :=Fz5(xz5)
Z6:yz6 :=Fz6(xz6)
// Заданы стандартные обобщенные функциональные представления
// отдельных команд – на уровне обобщенных операторов присваивания
// Не указаны связи переменных разных команд
КоФ: Комбинированная форма
ИнПрПоФ: Инфикно-префиксно-постфиксная форма
АлгПТ: Алгол-подобный текст / ПасПТ: Паскаль-подобный текст
ГИ: Горизонтальное исполнение
ШТА: Шаблон текста алгоритма
// ИнФ: Инфиксная форма
A910 = (((Z1Z2(Z6V(Z11Z8))) & (Z3&1Z4))Z1) =
A910 = (((Z1 – Z2 – (Z6 V (Z1 – 1 – Z8))) & (Z3 – &1 – Z4)) – Z1) =
// Явное введение знака неявной операции вилки
A910 = (((Z1Z2(Z6 #V (Z1 1 Z8))) #& (Z3 &1 Z4)) Z1) =
A910 = (((Z1 – Z2 – (Z6 #V (Z1 – 1 – Z8))) #& (Z3 – &1 – Z4)) – Z1)
// ИнПрПоФ: Инфикно-префиксно-постфиксная форма
// инфиксная по операции , префиксная – по #, постфиксная – по &,V($)
= ( #((Z1Z2(Z6 #V(Z11Z8))), (Z3&1Z4))&Z1) =
= ( #((Z1Z2#(Z6, (Z11Z8))V), (Z3&1Z4))&Z1) =
Конечные результаты
A910 = (#((Z1Z2#( Z6, (Z11Z8))V ), (Z3&1Z4))&Z1) =
A910 = ( #( (Z1 Z2 #( Z6, (Z11 Z8) )V ), (Z3 &1 Z4) )& Z1) =
// выделены тоном и подчеркнуты специальные пары знаков #( )& )V
ТЗО: Таблица замены обозначений. Дополнительные элементы
Общие замены обозначений | ||
ШТА |
1 =(1) =(#, 1) =(#,L1) |
&1 =(&. 1) =(&.L1) |
РТА |
fork(L1) |
join(L1)_and = join(L1) |
РТА: Рабочий текст алгоритма // замены обозначений
АлгПТ: Алгол-подобный текст
alg A910: begin parbegin begin Z1; Z2; parbegin Z6, begin Z1; fork(L1); Z8 end parend–or end, begin Z3; join(L1); Z4 end parend–and; Z1 end
ПасПТ: Паскаль-подобный текст
alg A910: begin cobegin begin Z1; Z2; cobegin Z6, begin Z1; fork(L1); Z8 end coend–or end, begin Z3; join(L1); Z4 end coend–and; Z1 end
Допустимые сокращения:
АлгПТ: Алгол-подобный текст // parend_and=parend
alg A910 begin cobegin begin Z1; Z2; cobegin Z6, begin Z1; fork(L1); Z8 end parend_or end, begin Z3; join(L1); Z4 end parend; Z1 end
ПасПТ: Паскаль-подобный текст //coend_and=coend
alg A910 begin cobegin begin Z1; Z2; cobegin Z6, begin Z1; fork(L1); Z8 end coend–or end, begin Z3; join(L1); Z4 end coend; Z1 end
Примечание. 1) В разных языках и операционных системах существуют многочисленные варианты операторовforkиjoinс существенно разной семантикой (механизмов действия) разделения и соединения потоков, включая дополнительные сигнальные и другие функции.
2) В данном случае используется простейшая разновидность этих операторов (семантика ясна из структурной схемы).
ВИ: Вертикальное исполнение
// A910 =( #((Z1Z2#(Z6,(Z11Z8))V),(Z3&1Z4))&Z1)
ШТА: Шаблон текста алгоритма |
РТА: Рабочий текст | ||
A910 = ( # ( ( Z1 Z2 # ( Z6 , ( Z1 1 Z8 ) ) V ) , ( Z3 &1 Z4 ) ) & Z1 )
|
A910 = ( #( ( Z1 Z2 #( Z6, ( Z1 1 Z8 ) )V ), ( Z3 &1 Z4 ) )& Z1 )
|
A910 = ( | #( | | ( | | | Z1 | | | Z2 | | | #( | | | | Z6, | | | | ( | | | | | Z1 | | | | | 1 | | | | | Z8 | | | | ) | | | )V | | ), | | ( | | | Z3 | | | &1 | | | Z4 | | ) | )& | Z1 ) |
alg A910: begin parbegin //cobegin begin Z1; Z2; parbegin //cobegin Z6, begin Z1; fork(L1); Z8 end parend_or //coend_or end, begin Z3; join(L1); Z4 end parend_and; //coend_and Z1 end |
Подстановка функций команд (операторы присваивания)
РТА: Рабочий текст алгоритма | |
alg A910: ya910 = Fa910(xa910): begin parbegin //cobegin begin Z1: yz1 := Fz1(xz1); Z2: yz2 := Fz2(xz2); parbegin //cobegin Z6: yz6 := Fz6(xz6), begin Z1: yz1 := Fz1(xz1); fork(L1); Z8: yz8 := Fz8(xz8) end parend_or //coend_or end, begin Z3: yz3 := Fz3(xz3); join(L1); Z4: yz4 := Fz4(xz4) end parend_and; //coend_and Z1: yz1 := Fz1(xz1) end |
alg A910: ya910 = Fa910(xa910): begin parbegin //cobegin begin yz1 := Fz1(xz1); yz2 := Fz2(xz2); parbegin //cobegin yz6 := Fz6(xz6), begin yz1 := Fz1(xz1); fork(L1); yz8 := Fz8(xz8) end parend_or //coend_or end, begin yz3 := Fz3(xz3); join(L1); yz4 := Fz4(xz4) end parend_and; //coend_and yz1 := Fz1(xz1) end |
Анализ:
Результаты
Язык
синтаксис
семантика
прагматика – субъекты (автомат, персонал), присубъекты
ручные средства
автоматизация
Выводы