Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
02.05.2014
Размер:
571.39 Кб
Скачать
          1. Автоматизация построений: Алгол (Паскаль)-подобный текст

СФА 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. ПрФ: Префиксная форма

          1. Ги: Горизонтальное исполнение

АлгПТ: Алгол-подобный текст

ШТА 1.7: Шаблон текста алгоритма

Исходная ИнФ: Инфиксная форма

A572 = (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), ((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), ((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)

Соседние файлы в папке Расчетно-графическая работа1