Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расчетно-графическая работа.doc
Скачиваний:
12
Добавлен:
02.05.2014
Размер:
1.65 Mб
Скачать
          1. Дополнительные функциональные обозначения

ООА: Общее обозначение алгоритма

alg A910: ya910 = Fa910(xa0)

СКА: Система команд алгоритма

Z1:yz1 :=Fz1(xz1)

Z2:yz2 :=Fz2(xz2)

Z3:yz3 :=Fz3(xz3)

Z4:yz4 :=Fz4(xz4)

Z6:yz6 :=Fz6(xz6)

Z8:yz8 :=Fz8(xz8)

// Заданы стандартные обобщенные функциональные представления

// отдельных команд – на уровне обобщенных операторов присваивания

// Не указаны связи переменных разных команд

          1. ИнФ: Инфиксная форма

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

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

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

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

A910 = (((Z1Z2(Z6V(Z1Z8))) & (Z3Z4))Z1)

ТЗО: Таблица замены обозначений

Компоненты ШТА

Ai

Zi

=

(

)

&

V

Компоненты РТА:

латиница

кириллица

algAi

алг Ai

Zi

Zi

:

:

(

begin

нач

)

end

кон

;

;

and

и

or

или

РТА: Рабочий текст алгоритма // замены обозначений

вариант 1

A910: (((Z1; Z2; (Z6 or (Z1; Z8))) and (Z3; Z4)); Z1)

вариант 2

A910: begin begin begin Z1; Z2; begin Z6 or begin Z1; Z8 end end end and begin Z3; Z4 end end; Z1 end

ВИ: Вертикальное исполнение // вариант 2

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

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

РТА: Рабочий текст

A910

=

(

(

(

Z1

Z2

(

Z6

V

(

Z1

Z8

)

)

)

&

(

Z3

Z4

)

)

Z1

)

A910 =

(

(

(

Z1 

Z2 

(

Z6 V

(

Z1 

Z8

)

)

) &

(

Z3 

Z4

)

) 

Z1

)

A910 =

(

| (

| | (

| | | Z1 

| | | Z2 

| | | (

| | | | Z6 V

| | | | (

| | | | | Z1 

| | | | | Z8

| | | | )

| | | )

| | ) &

| | (

| | | Z3 

| | | Z4

| | )

| ) 

| Z1

)

alg A910:

begin

begin

begin

Z1;

Z2;

begin

Z6 or

begin

Z1;

Z8

end

end

end and

begin

Z3;

Z4

end

end

Z1

end

Подстановка функций команд (операторы присваивания)

РТА: Рабочий текст

alg A910: ya910 = Fa910(xa910):

begin

begin

begin

Z1: yz1 := Fz1(xz1);

Z2: yz2 := Fz2(xz2);

begin

Z6: yz6 := Fz6(xz6)or

begin

Z1: yz1 := Fz1(xz1);

Z8: yz8 := Fz8(xz8)

end

end

end and

begin

Z3: yz3 := Fz3(xz3);

Z4: yz4 := Fz4(xz4)

end

end

Z1: yz1 := Fz1(xz1)

end

alg A910: ya910 = Fa910(xa910):

begin

begin

begin

yz1 := Fz1(xz1);

yz2 := Fz2(xz2);

begin

yz6 := Fz6(xz6)or

begin

yz1 := Fz1(xz1);

yz8 := Fz8(xz8)

end

end

end and

begin

yz3 := Fz3(xz3);

yz4 := Fz4(xz4)

end

end

yz1 := Fz1(xz1)

end

Анализ:

Результаты

Язык

синтаксис

семантика

прагматика – субъекты (автомат, персонал), присубъекты

ручные средства

автоматизация

Выводы

          1. ИнФ': Неявная инфиксная форма

// неявная форма относительно знака операции суперпозиции ()

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

СиПТ: Си-подобный текст

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

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

A910 = (((Z1Z2(Z6V(Z1Z8))) & (Z3Z4))Z1) =

// Удаление явной связки следования (суперпозиции )

= (((Z1Z2 (Z6V(Z1Z8))) & (Z3Z4))Z1)

// Введение пробелов (повышения читабельности)

A910 = (((Z1 Z2 (Z6 V (Z1 Z8))) & (Z3 Z4)) Z1)

// Подстрочные индексы (повышения читабельности)

A910 = (((Z1Z2 (Z6 V (Z1Z8))) & (Z3Z4))Z1)

ТЗО: Таблица замены обозначений

Компоненты ШТА

Ai

Zi

=

(

)

&

V

Компоненты РТА:

alg Ai

Zi;

:

{

}

& &'

$ $'

РТА: Рабочий текст алгоритма // замены обозначений

algA910:{{{Z1;Z2; {Z6; $ {Z1;Z8;}}} & {Z3;Z4;}}Z1;}

ВИ: Вертикальное исполнение

СиПТ: Си-подобный текст

// A910 = (((Z1 Z2  (Z6 V (Z1  Z8))) & (Z3  Z4))  Z1)

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

РТА: Рабочий текст

A910

=

(

(

(

Z1

Z2

(

Z6

V

(

Z1

Z8

)

)

)

&

(

Z3

Z4

)

)

Z1

)

A910 =

(

(

(

Z1

Z2

(

Z6 V

(

Z1

Z8

)

)

) &

(

Z3

Z4

)

)

Z1

)

A910 =

(

| (

| | (

| | | Z1

| | | Z2

| | | (

| | | | Z6 V

| | | | (

| | | | | Z1

| | | | | Z8

| | | | )

| | | )

| | ) &

| | (

| | | Z3

| | | Z4

| | )

| )

| Z1

)

A910 =(((

| | | Z1

| | | Z2 (

| | | | Z6 V (

| | | | | Z1

| | | | | Z8

| | | | )

| | | )

| | ) & (

| | | Z3

| | | Z4

| | )

| )

| Z1

)

A910 ={{{

| | | Z1;

| | | Z2; {

| | | | Z6 $ {

| | | | | Z1;

| | | | | Z8;

| | | | }

| | | }

| | } & {

| | | Z3;

| | | Z4;

| | }

| }

| Z1;

}

Подстановка функций команд (операторы присваивания)

РТА: Рабочий текст алгоритма

A910: ya910 = Fa910(xa910): {{{

Z1: yz1 = Fz1(xz1);

Z2: yz2 = Fz1(xz2){

Z6: yz6 = Fz6(xz6)$ {

Z1: yz1 = Fz1(xz1);

Z8: yz8 = Fz8(xz8);

}

}

} & {

Z3: yz3 = Fz3(xz3);

Z4: yz4 = Fz4(xz4);

}

}

Z1: yz1 = Fz1(xz1);

}

A910: ya910 = Fa910(xa910): {{{

yz1 = Fz1(xz1);

yz2 = Fz1(xz2){

yz6 = Fz6(xz6)$ {

yz1 = Fz1(xz1);

yz8 = Fz8(xz8);

}

}

} & {

yz3 = Fz3(xz3);

yz4 = Fz4(xz4);

}

}

yz1 = Fz1(xz1);

}

Анализ:

Результаты

Язык

синтаксис

семантика

прагматика – субъекты (автомат, персонал), присубъекты

ручные средства

автоматизация

Выводы

КоФ: Комбинированная форма

ИнПрПоФ: Инфикно-префиксно-постфиксная форма

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

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

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

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

A910 = (((Z1Z2(Z6V(Z1Z8))) & (Z3Z4))Z1) =

// Явное введение знака неявной операции вилки

= (((Z1Z2(Z6#V(Z1Z8)))#& (Z3Z4))Z1) =

= (((Z1Z2(Z6 #V(Z1Z8))) #& (Z3Z4))Z1) = ИнПрПоФ: Инфикно-префиксно-постфиксная форма

// инфиксная по операции , префиксная – по #, постфиксная – по &,V($)

= (#((Z1Z2(Z6V(Z1Z8))),(Z3Z4))&Z1) =

= (#((Z1Z2#(Z6, (Z1Z8))V),(Z3Z4))&Z1) =

= ( #( (Z1Z2#(Z6, (Z1Z8) )V), (Z3Z4) )&Z1)

A910 = ( #( (Z1 Z2  #( Z6, (Z1  Z8) )V ), (Z3  Z4) )&  Z1)

// выделены тоном и подчеркнуты специальные пары знаков #( )& )V

ТЗО: Таблица замены обозначений

Общие замены обозначений

Компоненты ШТА

Ai

Zi

=

(

)

#

&

V

Компоненты РТА:

alg Ai

Zi

:

begin

end

;

par

and

or

Специальные замены обозначений (для специальных пар знаков)

Компоненты ШТА

#(

)&

)V

Компоненты РТА:

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

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

par begin

parbegin

cobegin

end and

parend_and

coend_and

end or

parend_or

coend_or

Допустимые сокращения записи служебных слов:

parend_and = parend

coend_and = coend

РТА: Рабочий текст алгоритма // замены обозначений

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

alg A910: begin parbegin begin Z1; Z2; parbegin Z6, begin Z1; Z8) parend–or end, begin Z3; Z4 end parend–and; Z1 end

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

alg A910: begin cobegin begin Z1; Z2; cobegin Z6, begin Z1; Z8) coend–or end, begin Z3; Z4 end coend–and; Z1 end

Допустимые сокращения:

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

alg A910 begin parbegin begin Z1; Z2; parbegin Z6, begin Z1; Z8) parend–or end, begin Z3; Z4 end parend; Z1 end

ПасПТ: Паскаль-подобный текст //coend_and=coend

alg A910: begin cobegin begin Z1; Z2; cobegin Z6, begin Z1; Z8) coend–or end, begin Z3; Z4 end coend; Z1 end

ВИ: Вертикальное исполнение

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

// A910 = ( #( (Z1 Z2  #( Z6, (Z1  Z8) )V ), (Z3  Z4) )&  Z1)

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

РТА: Рабочий текст

A910

=

(

#

(

(

Z1

Z2

#

(

Z6

,

(

Z1

Z8

)

)

V

)

,

(

Z3

Z4

)

)

&

Z1

)

A910=

(

#(

(

Z1

Z2

#(

Z6,

(

Z1

Z8

)

)V

),

(

Z3

Z4

)

)&

Z1

)

A910=

(

| #(

| | (

| | | Z1 

| | | Z2 

| | | #(

| | | | Z6,

| | | | (

| | | | | Z1 

| | | | | Z8

| | | | )

| | | )V

| | ),

| | (

| | | Z3 

| | | Z4

| | )

| ) & 

Z1

)

A910=

begin

parbegin //cobegin

begin

Z1;

Z2;

parbegin //cobegin

Z6,

begin

Z1;

Z8

end

parend_or //coend_or

end,

begin

Z3;

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);

Z8: yz8 := Fz8(xz8)

end

parend_or //coend_or

end,

begin

Z3: yz3 := Fz3(xz3);

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);

yz8 := Fz8(xz8)

end

parend_or //coend_or

end,

begin

yz3 := Fz3(xz3);

yz4 := Fz4(xz4)

end

parend_and; //coend_and

yz1 := Fz1(xz1)

end

Анализ:

Результаты

Язык

синтаксис

семантика

прагматика – субъекты (автомат, персонал), присубъекты

ручные средства

автоматизация

Выводы