- •Млта: Математическая логика и теория алгоритмов
- •Комплект трех вариантов структурной формулы
- •Базисные структуры параллельных алгоритмов
- •1.2 Исходные структурные формулы параллельных алгоритмов
- •Стандартная форма формулы алгоритма
- •Контроль результатов
- •1. 2 Автоматизация построений основной схемы алгоритма Исходные условия
- •Вариант 1 структурной схемы. Автоматизация построений
- •Анализ структурной схемы Общие данные структуры алгоритма
- •Проверочная нумерация оболочек формул и схем
- •Вложенность формульных оболочек
- •Явная операция разделения (вилки) потоков
- •Работа с тренажером схемных построений
- •Мозаичный набор схем
- •Временные диаграммы параллельных алгоритмов
- •Графический расчет длительности алгоритма
- •Расчет длительности алгоритма
- •Вербальные тексты параллельных алгоритмов базисных структур
- •ИнФ: Инфиксная форма вербального текста
- •Ги: Горизонтальное исполнение
- •Алг a601: нач z2; нач нач нач нач нач нач z0; z2 кон и z1 кон; z0 кон и z8 кон и нач z3; z5 кон кон и нач z7; z4 кон кон кон ви: Вертикальное исполнение
- •Автоматизация построений
- •НИнФ: Неявная инфиксная форма вербального текста
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •КоФ: Комбинированная форма вербального текста: ИнПрПоФ
- •Ги: Горизонтальное исполнение
- •Alg a602: begin z2; cobegin cobegin cobegin begin cobegin begin z0; z2 end, z1 coend; z0 end, z8 coend, begin z3; z5 end coend_or, begin z7; z4 end coend end
- •Ви: Вертикальное исполнение
- •Автоматизация построений: Алгол (Паскаль)-подобный текст
- •ПрФ: Префиксная форма
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений
Явная операция разделения (вилки) потоков
В сопоставлении СФА со ССА выявляется неявная операция разделения (вилки) потоков – распараллеливания алгоритмических цепей:
СФА 0.3: Структурная формула алгоритма / У: Поток управления
ИнФ: Инфиксная форма записи формулы
ПИнФ: Полная инфиксная форма // пошаговое построение
Неявная операция разделения (подразумевается)
A602 = (Z2 ((((((Z0 Z2)& Z1) Z0) & Z8) V (Z3 Z5)) & (Z7 Z4))) =
Явная простановка операции разделения (вилки)
= (Z2 ((((((Z0 Z2) #&Z1)Z0)#&Z8)#V(Z3 Z5))#& (Z7 Z4))) =
= (Z2 ((((((Z0 Z2) #&Z1)Z0) #&Z8) #V(Z3 Z5)) #& (Z7 Z4)))
Основная стандартная форма записи СФА:
Строчная индексация:
A602 = (Z2 ((((((Z0 Z2) #&Z1)Z0)#&Z8)#V(Z3 Z5))#& (Z7 Z4))) Подстрочная индексация (нижние индексы) и упрощения записи:
A602 = (Z2 - ((((((Z0 - Z2) #& Z1) - Z0) #& Z8) #V (Z3 - Z5)) #& (Z7 - Z4))) =
= Z2 - ((((((Z0 - Z2) #& Z1) - Z0) #& Z8) #V (Z3 - Z5)) #& (Z7 - Z4)) =
= Z2((((((Z0Z2) #& Z1)Z0) #& Z8) #V (Z3Z5)) #& Z7Z4) =
= Z2((((((Z0Z2) #& Z1)Z0) #& Z8) #V Z3Z5) #& Z7Z4) =
= Z2(((((Z0Z2 #& Z1)Z0) #& Z8) #V Z3Z5) #& Z7Z4) =
= Z2((((Z0Z2 #& Z1)Z0 #& Z8) #V Z3Z5) #& Z7Z4)
Разделение парных операций
// Выполняется только Вариант 2
Выше все три операции представлены в инфиксной форме.
Вводится комбинированные способы записи разных операций.
СФА 0.4: Структурная формула алгоритма / У: Поток управления
КоФ: Комбинированная форма записи формулы
ИнПрПоФ: Инфиксно-префиксно-постфиксная форма
// Пошаговое построение
Исходная формула:
A602 = (Z2 - ((((((Z0 - Z2) #& Z1) - Z0) #& Z8) #V (Z3 - Z5)) #& (Z7 - Z4))) =
Разносится более глубоко вложенная пара операций #&:
= (Z2 - #((#((#((Z0 -Z2),Z1)& -Z0),Z8)& #V(Z3 -Z5)),(Z7 -Z4))&) =
Разносится менее глубоко вложенная пара операций #V:
= (Z2 - #(#(#((#((Z0 -Z2),Z1)& -Z0),Z8)&,(Z3 -Z5))V,(Z7 -Z4))&)
// Суперпозиция () сохраняется в инфиксе.
// Разделение (# – вилка) потоков выносится в префикс (влево).
// Соединение (сборка) по конъюнкции (&) и дизъюнкции (V)
// выносятся в постфикс (вправо).
Конечные результаты:
Строчная индексация:
A602 = (Z2 #(#(#((#((Z0 Z2),Z1)& Z0),Z8)&,(Z3 Z5))V,(Z7 Z4))&)
Подстрочная индексация (нижние индексы) и упрощения записи:
A602 = (Z2 - #(#(#((#((Z0 - Z2),Z1)& - Z0),Z8)&,(Z3 - Z5))V,(Z7 - Z4))&)
A602 = (Z2#(#(#((#((Z0Z2),Z1)&Z0),Z8)&,(Z3Z5))V,(Z7Z4))&)
A602 = (Z2#(#(#((#((Z0Z2),Z1)&Z0),Z8)&,(Z3Z5))V,Z7Z4)&)
A602 = (Z2#(#(#((#(Z0Z2,Z1)&Z0),Z8)&,(Z3Z5))V,Z7Z4)&)
A602 = (Z2#(#(#((#(Z0Z2,Z1)&Z0),Z8)&,Z3Z5)V,Z7Z4)&)
A602 = (Z2#(#(#(#(Z0Z2,Z1)&Z0,Z8)&,Z3Z5)V,Z7Z4)&)
A602 = Z2#(#(#(#(Z0Z2,Z1)&Z0,Z8)&,Z3Z5)V,Z7Z4)&
Работа с тренажером схемных построений
Мозаичный набор схем
Используется программа TRENTEST– графический тренажер-тестер.
Выполняется мозаичный набор структурных схем.
Вариант 1
СФА 0.5: Структурная формула алгоритма
A601 = (Z2 - ((((((Z0 - Z2)& Z1) - Z0) & Z8) & (Z3 - Z5)) & (Z7 - Z4)))
A601 = (Z2 ((((((Z0 Z2)& Z1) Z0) & Z8) & (Z3 Z5)) & (Z7 Z4)))
ССА0.2: Структурная схема алгоритма
ШСА 0.1: Штрих-схема алгоритма
Вариант 2
СФА 0.6: Структурная формула алгоритма
A602 = (Z2 - ((((((Z0 - Z2)& Z1) - Z0) & Z8) V (Z3 - Z5)) & (Z7 - Z4)))
A602 = (Z2 ((((((Z0 Z2)& Z1) Z0) & Z8) V (Z3 Z5)) & (Z7 Z4)))
ССА0.3: Структурная схема алгоритма
ШСА 0.2: Штрих-схема алгоритма
РМУ 0.2Однозначность графических построений:
1) В изложенной технике структурных построений обеспечивается возможность однозначного построения ССА по заданной СФА.
2) Данное обстоятельство обеспечивает возможность контроля правильности учебных схемных построений на основе сравнения с эталоном.