- •Часть 3
- •Ви: Вертикальное исполнение
- •Автоматизация построений
- •НИнФ: Неявная инфиксная форма вербального текста
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений: си-подобный текст
- •КоФ: Комбинированная форма вербального текста: ИнПрПоФ
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений: Алгол (Паскаль)-подобный текст
- •ПрФ: Префиксная форма
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений
Автоматизация построений: Алгол (Паскаль)-подобный текст
СФА 1.3: Структурная формула алгоритма / ИнФ: Инфиксная форма
A572 = (Z2 (((Z0 & Z8) Z2) & Z3) ((Z4 V (Z8 Z2)) V (Z6 Z7)))
A572 = (Z2–(((Z0&Z8)–Z2)&Z3)–((Z4$(Z8–Z2))$(Z6–Z7)))
Выполняются построения для АлгПТ: Алгол-подобного текста алгоритма.
Для ПасПТ: Паскаль-подобного текста – в данном случае все аналогично.
Набор формулы

ГИ: Горизонтальное исполнение
Настройки: ИнФ / АлгПТ / ГИ

ШТА 1.6: Шаблон текста алгоритма // преобразованная формула

ВТА 1.11: Вербальный текст алгоритма
Начало
Окончание

ВИ: Вертикальное исполнение
Настройки: ИнФ / АлгПТ / ВИ

ВТА 1.12: Вербальный текст алгоритма
АлгПТ: Алгол-подобный текст ПасПТ: Паскаль-подобный текст

ПрФ: Префиксная форма
Ги: Горизонтальное исполнение
АлгПТ: Алгол-подобный текст
ШТА 1.7: Шаблон текста алгоритма
Исходная ИнФ: Инфиксная форма
A572 = (Z2 (((Z0 & Z8) Z2) & Z3) ((Z4 V (Z8 Z2)) V (Z6 Z7))) =
Явное введение знака неявной операции разделения потоков
= (Z2(((Z0#&Z8)Z2)#&Z3)((Z4#V(Z8Z2))#V(Z6Z7))) =
= (Z2(((Z0 #&Z8)Z2) #&Z3)((Z4 #V(Z8Z2)) #V(Z6Z7))) =
ПрФ: Префиксная форма
// все операции (поэтапно) выносятся в префикс
= (Z2, (((Z0 #&Z8)Z2) #&Z3), ((Z4 #V(Z8Z2)) #V(Z6Z7))) =
= (Z2, (((Z0 #&Z8),Z2) #&Z3), ((Z4 #V(Z8Z2)) #V(Z6Z7))) =
= (Z2, (((Z0 #&Z8),Z2) #&Z3), ((Z4 #V(Z8,Z2)) #V(Z6Z7))) =
= (Z2, (((Z0 #&Z8),Z2) #&Z3), ((Z4 #V(Z8,Z2)) #V(Z6,Z7))) =
= (Z2, (( #&(Z0,Z8),Z2) #&Z3), ((Z4 #V(Z8,Z2)) #V(Z6,Z7))) =
= (Z2, #&((#&(Z0,Z8),Z2),Z3), ((Z4 #V(Z8,Z2)) #V(Z6,Z7))) =
= (Z2, #&((#&(Z0,Z8),Z2),Z3), (#V(Z4,(Z8,Z2)) #V(Z6,Z7))) =
= (Z2, #&((#&(Z0,Z8),Z2),Z3), #V(#V(Z4,(Z8,Z2)),(Z6,Z7)))
A572 = ( Z2, #&((#&(Z0, Z8), Z2), Z3), #V(#V(Z4, (Z8, Z2)), (Z6, Z7)) )
A572 = ( Z2, #&((#&(Z0, Z8), Z2), Z3), #V(#V(Z4, (Z8, Z2)), (Z6, Z7)) )
ТЗО1.4: Таблица замены обозначений
|
Общие замены обозначений | ||||||||||||
|
Компоненты ШТА |
Ai |
Zi |
= |
( |
) |
|
# |
& |
V
| |||
|
Компоненты РТА: |
alg Ai |
Zi |
: |
begin ( |
end ) |
seq |
par |
and |
or | |||
|
Специальные замены обозначений (для специальных пар знаков) | ||||||||||||
|
Компоненты ШТА |
#& |
#V |
| |||||||||
|
Компоненты РТА |
par_and = par |
par_or |
| |||||||||
РТА 1.4: Рабочий текст алгоритма
вариант 1
alg A572: seq ( Z2, par_and (seq (par_and (Z0, Z8), Z2), Z3), par_or (par_or (Z4, seq (Z8, Z2)), seq (Z6, Z7)) )
вариант 2
alg A572: seq begin Z2, par_and begin seq begin par_and begin Z0, Z8 end, Z2 end, Z3 end, par_or begin par_or begin Z4, seq begin Z8, Z2 end end, seq begin Z6, Z7 end end end
Допустимые упрощения: par_and = par
alg A572: seq begin Z2, par begin seq begin par begin Z0, Z8 end, Z2 end, Z3 end, par_or begin par_or begin Z4, seq begin Z8, Z2 end end, seq begin Z6, Z7 end end end
Ви: Вертикальное исполнение
ОкПТ: Оккам-подобный текст
// A572 =(Z2, #&((#&(Z0,Z8),Z2),Z3), #V(#V(Z4,(Z8,Z2)),(Z6,Z7)) ) и далее
ВТА1.13: Вербальный текст алгоритма
|
ШТА: Шаблон текста алгоритма |
РТА: Рабочий текст | ||||
|
1 |
2 |
3 |
4 |
5 |
6 |
|
A572 = ( Z2 , # & ( ( # & ( Z0 , Z8 ) , Z2 ) , Z3 ) , # V ( # V ( Z4 , ( |
Z8 , Z2 ) ) , ( Z6 , Z7 ) ) ) |
A572 = ( Z2, #& ( ( #& ( Z0, Z8 ), Z2 ), Z3 ), #V ( #V ( Z4, ( Z8, Z2 ) ), ( Z6, Z7 ) ) ) |
A572 =
| Z2, | #&
| |
| | | #&
| | | | Z0, | | | | Z8
| | | Z2
| | Z3
| #V
| | #V
| | | Z4, | | |
| | | | Z8, | | | | Z2
| |
| | | Z6, | | | Z7
|
A572 = | Z2 | #& | | | | | #& | | | | Z0 | | | | Z8 | | | Z2 | | Z3 | #V | | #V | | | Z4 | | | | | | | Z8 | | | | Z2 | | | | | Z6 | | | Z7
|
alg A572: seq Z2 par // par_and seq par // par_and Z0 Z8 Z2 Z3 par_or par_or Z4 seq Z8 Z2 seq Z6 Z7
|
ВТА 1.14: Вербальный текст алгоритма // Дополнение к ВТА 1.13
Подстановка функций команд (операторы присваивания)
|
РТА: Рабочий текст алгоритма | |
|
7 |
9 |
|
alg A572: ya572 = Fa572(xa572): seq Z2: yz2 := Fz2(xz2) par // par_and seq par // par_and Z0: yz0 := Fz0(xz0) Z8: yz8 := Fz8(xz8) Z2: yz2 := Fz2(xz2) Z3: yz3 := Fz3(xz3) par_or par_or Z4: yz4 := Fz4(xz4) seq Z8: yz8 := Fz8(xz8) Z2: yz2 := Fz2(xz2) seq Z6: yz6 := Fz6(xz6) Z7: yz7 := Fz7(xz7) |
alg A572: ya572 = Fa572(xa572) seq yz2 := Fz2(xz2) par // par_and seq par // par_and yz0 := Fz0(xz0) yz8 := Fz8(xz8) yz2 := Fz2(xz2) yz3 := Fz3(xz3) par_or par_or yz4 := Fz4(xz4) seq yz8 := Fz8(xz8) yz2 := Fz2(xz2) seq yz6 := Fz6(xz6) yz7 := Fz7(xz7) |
