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

Промежуточные Питон-подобные формы записи алгоритма

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

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

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

A10 = Z3

A20 = Z8

A30 = Z6 – Z7

A40 = Z8 – Z2

A571 = Z2 – FA10 – FA20 – Z0 – JfA20 – Z2 –JFA10 – FA30 – FA40 – Z4 –JFA40 – JFA30

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

alg A10( ): Zh3( );

alg A20( ): Zh8( );

alg A30( ): Zh6( ); Zh7( );

alg A40( ): Zh8( ); Zh2( );

alg A571( ): Zh2( ); Fork(A10( )); Fork(A20( )); Zh0( ); Join_&(A20( )); Zh2( );

Join_&(A10( )); Fork(A30( )); Fork(A40( )); Zh4( ); Join_&(A40( )); Join_&(A30( ));

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

ШТА:

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

РТА:

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

A10

=

Z3

A10 =

Z3

A10 =

| Z3

A10 =

| Z3

alg10:

Zh3()

A20

=

Z8

A20 =

Z8

A20 =

| Z8

A20 =

| Z8

alg A20():

Zh8()

A30

=

Z6

Z7

A30 =

Z6 –

Z7

A30 =

| Z6 –

| Z7 -

A30 =

| Z6

| Z7

alg30:

Zh6()

Zh7()

A40

=

Z8

Z2

A40 =

Z8 –

Z2 –

A40 =

| Z8 –

| Z2 –

A40 =

| Z8

| Z2

alg A40():

Zh8()

Zh2()

A571

=

Z2

FA10

FA20

Z0

JFA20

Z2

JFA10

FA30

FA40

Z4

JFA40

JFA30

A571 =

Z2 –

FA10 –

FA20 –

Z0 –

JFA20 –

Z2 –

JFA10 –

FA30 –

FA40 –

Z4 –

JFA40 –

JFA30

A571 =

| Z2 –

| FA10 –

| FA20 –

| Z0 –

| JFA20 –

| Z2 –

| JFA10 –

| FA30 –

| FA40 –

| Z4 –

| JFA40 –

| JFA30

A571 =

| Z2

| FA10

| FA20

| Z0

| JFA20

| Z2

| JFA10

| FA30

| FA40

| Z4

| JFA40

| JFA30

alg A571():

Zh2()

Fork(A10())

Fork(A20())

Zh0()

Join_&(A20())

Zh2()

Join_&(A10())

Fork(A30())

Fork(A40())

Zh4()

Join_&(A40())

Join_&(A30())

1.4 Многопоточная программная реализация алгоритма Реализация компонент алгоритма

РТА:

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

ИТП:

Исходный текст подпрограмм

alg10:

Zh3()

def A10(ccrt, hCycles):

hCycles.za10 = 0

# Переменная индикации окончания A10

hCycles.Zh(ccrt.techsys.head3)

hCycles.za10 = 1

# Индикация окончания процесса A10

alg20:

Zh8()

def A20(ccrt, hCycles):

hCycles.za20 = 0

# Переменная индикации окончания A20

hCycles.Zh(ccrt.techsys.head8)

hCycles.za20 = 1

# Индикация окончания процесса A20

alg30:

Zh6()

Zh7()

def A30(ccrt, hCycles):

hCycles.za30 = 0

# Переменная индикации окончания A30

hCycles.Zh(ccrt.techsys.head6)

hCycles.Zh(ccrt.techsys.head7)

hCycles.za30 = 1

# Индикация окончания процесса A30

alg A40():

Zh8()

Zh2()

def A40(ccrt, hCycles):

hCycles.za40 = 0

# Переменная индикации окончания A40

hCycles.Zh(ccrt.techsys.head8)

hCycles.Zh(ccrt.techsys.head2)

hCycles.za40 = 1

# Индикация окончания процесса A40

alg A571():

Zh2()

Fork(A10())

Fork(A20())

Zh0()

Join_&(A20())

Zh2()

Join_&(A10())

Fork(A30())

Fork(A40())

Zh4()

Join_&(A40())

Join_&(A30())

def eAxx1(ccrt, hCycles):

hCycles.Zh(ccrt.techsys.head2)

thread.start_new(expSub.A10,(ccrt,hCycles,))

thread.start_new(expSub.A20,(ccrt,hCycles,))

hCycles.Zh(ccrt.techsys.head0)

while not hCycles.za20:

time.sleep(0.1)

hCycles.Zh(ccrt.techsys.head2)

while not hCycles.za10:

time.sleep(0.1)

thread.start_new(expSub.A30,(ccrt,hCycles,))

thread.start_new(expSub.A40,(ccrt,hCycles,))

hCycles.Zh(ccrt.techsys.head4)

while not hCycles.za40:

time.sleep(0.1)

while not hCycles.za30:

time.sleep(0.1)

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