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

Порядок выполнения – подэтапы Э31..Э34 этапа Э3

          1. Э31 Задание длительности исполнения команд

РМУ 1.15 Задать (выписать) массив длительности исполнения команд.

ДИК: Длительности mziисполнения командZi:

mz1

mz2

mz3

mz4

mz6

mz8

40

20

30

60

30

10

РМУ 1.16 1) Данные назначаются самостоятельно (в условных единицах).

2) Целесообразно отразить структурные особенности алгоритма при его исполнении во времени (это зависит от соотношения длительности команд).

          1. Э32 Построение временной диаграммы сетевого типа

РМУ 1.17 Выполняется полное построение ДИА сетевого типа, включая:

  • шкалу времени t;

  • линии zi жизненного цикла всех объектов Zi (по порядку номеров i);

  • линию ai жизненного цикла объекта Ai (полный цикл);

  • вертикальные (и наклонные) линии причинно-следственных связей событий;

  • эпюру загрузки ресурсов ei объекта Ai – занятые исполнители (число занятых процессоров процессов).

ДИА: Диаграмма исполнения алгоритма // Системный стандарт

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

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

//A910 = (((Z1 – Z2 – (Z6 V (Z11 – Z8))) & (Z3&1 – Z4)) – Z1)

РМУ 1.22 В принятом системном стандарте обеспечивается полный изоморфизм (взаимное структурное соответствие) структурных формул, структурных схем и сетевых временных диаграмм параллельных алгоритмов.

ДП: Диаграмма последовательностей // Стандарт UML

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

          1. Э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) – равенство выполняется.

Вывод: данные графического отсчета и расчета совпадают.

// Если данные не совпадают, то предпринимаются меры:

// поиск и устранение причин несоответствия.

          1. Э34 Аналитический расчет длительности алгоритма

Анализ:

Результаты

Язык

синтаксис

семантика

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

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

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

Выводы

        1. Э4: Подготовка вербальных текстов алгоритма

          1. Вта: Вербальные тексты алгоритмов

Формируются програмоподобные вербальные тексты алгоритмов.

РМУ 1.23 1) Подобие вербальных текстов алгоритмов программным языкам определяется по некоторым ключевым концептуальным аспектам.

2) Это не означает их абсолютного тождества. Возможны дополнительные различия разных версий программных языков, фирменные особенности и т.п.

          1. Дополнительные функциональные обозначения

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

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 = (((Z1Z2(Z6V(Z11Z8))) & (Z3&1Z4))Z1) =

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

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

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

A910 = (((Z1 – Z2 – (Z6 #V (Z11 – Z8))) #& (Z3&1 – Z4)) – Z1)

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

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

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

= ( #((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, (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 =( #((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

)

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

Анализ:

Результаты

Язык

синтаксис

семантика

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

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

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

Выводы