Файл: Смирнов, К. А. Сбор, передача и обработка данных АСУ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 106

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

«Урал-М»), На ipwc. 2.28а это устройство показано пунктиром.

Следует заметить, что первые два этапа составления программы, по сути дела, являются подготовительными. Иногда работы, проводимые на этих этапах, объединя­ ются под одним названием «разработка технологическо­ го алгоритма». Непосредственный процесс программиро­ вания начинается с разработки алгоритма решения за­

дачи, или, как его

еще называют,

«блок-схемы

про­

граммы».

а л г о р и т м а .

Алгоритмом

назы­

Р а з р а б о т к а

вается необходимая

последовательность арифметиче­

ских и логических действий по решению сформулирован­ ной задачи. Разработка алгоритма является первым этапом программирования. Для записи алгоритма ис­ пользуется форма, легко понятная человеку, хотя воз­ можно и не отражающая особенности ЭВМ, реализую­ щей данный алгоритм. Поскольку одну и ту же задачу можно решить различными путями, может быть состав­ лено несколько алгоритмов, из-которых выбирается тот, который решается с наименьшей затратой производи­ тельности конкретной ЭВМ.

Разработку алгоритма ввиду сложности этой задачи осуществляют в два этапа. Первый этап состоит в оп­ ределении последовательности арифметических и логи­ ческих действий, т. е. отражает сущность методики ре­ шения задачи. Второй этап включает в себя такие дей­ ствия, которые необходимы для нормальной работы ЭВМ. Сюда входят операции перевода исходных данных из десятичной системы счисления в двоичную, вывод результатов на печать и т. д.

Запись алгоритма может быть произведена различ­ ными способами. Ввиду своей наглядности наиболь­ шее распространение получила методика записи алго­ ритмов в виде блок-схем. В дальнейшем ,эти два этапа для простоты будут называться разработкой блок-схе­ мы программы. Однако наиболее прогрессивными спо­ собами записи алгоритмов являются алгоритмические языки. Подробнее о них будет сказано ниже.

Блок-схема программы представляет собой последо­ вательность прямоугольников, запись в каждом из ко­ торых указывает на характер проводимого действия. В качестве примера на рис. 2.29 показана блок-схема про­

граммы |р«шения задачи, сфор мулироваганой в

(начале

раздела. Блоки с номерами 3—8 (пишутся

на пер-

103


ном этапе составления блок-схемы программы, а блоки с номерами 1, 2 и 9, 10, 11 добавляются на втором эта­ пе. Данная программа является разветвляющейся, по­ скольку после выполнения указанной в блоке операции (например, в блоке 5) переход к следующей операции

Рис. 2.29. Запись алгоритма в виде блоксхемы

определяется некоторым логическим условием. Так, ес­ ли результат оказался равным нулю, следующей опера­ цией оказывается действие, записанное в блоке 7. В том случае, когда переход к следующему блоку определяет­ ся в результате проверки какого-либо логического ус­ ловия, такой переход называется условным. Если пе­

ня

реход к следующему блоку осуществляется без провер­ ки выполнения каких-либо условии, то переход назы­ вается безусловным. Так, например, переход от блока 7 к блоку 3 является безусловным переходом.

Ввод программы с носителя производится с помо­ щью стандартных, уже записанных в ЭВМ программ.

:Вызов последних осуществляется по команде, даваемой оператором с пульта управления ЭВМ. Операции, ука­

 

занные в блоке 2, обозначают перевод программы п ис­

 

ходных данных, записанных в десятичной системе

счн-

 

. сления, в двоичную систему счисления. Блок 9 обозна­

 

чает обратные действия.

 

 

 

 

 

Вспомогательные операции вывода на печать резуль­

 

татов вычислений вынесены из основной части блок-схе­

 

мы программы. В действительности переход от блока 3

 

к блоку 4 должен происходить через блоки 9, 10.

В этом

 

случае программист получает на печатающем устройст­

 

ве таблицу последовательных значений та. При необхо­

 

димости по команде с пульта оператора (блок 11)

вы­

 

полнение программы может быть остановлено.

 

 

 

Рассмотрим теперь, каким образом блок-схема про­

I

граммы отражает процесс изменения угла заслонки в

зависимости от дрэмен'и

(рис.

2.286). Подставим

в

вы-

[

ражение a — Y АР+В

такое

значение времени

/,

при

!

котором величина угла приняла значение аь При таких

:начальных условиях вычисление значения а (т. е. вы­ полнение операции, предусмотренное блоком 3) приве­ дет нас к блоку 4. Обозначим полученное значение уг­ ла через cti+i. При вычислении разности между преды­

дущим значением

угла

и аг+1 в качестве

а мо жн о

за­

дать любое значение

a2> a i> a i. Тогда

разность

Д=

1 =сс,-—а;+) будет

обязательно положительной, пооколь-

'ку по условию ai+i = ai. Назначение этой операции за­ ключается в определении характера дальнейшего изме­ нения величины t. Положительное значение Д показыва­ ет, что регулирование осуществляется в сторону умень­ шения угла заслонки. Значение Д, меньшее нуля, пока­ зывало бы, что мы находимся на участке регулирования

между точками h и t2.

Итак, при выполнении условного перехода (по усло­ вию Д>0) начинается вычисление y = ai+i—at (блок 8).

Назначение этого блока — не допустить уменьшения уг­ ла регулирования до значения, меньшего, чем сц. По­ скольку мы выбрали первоначальное значение t, приво­ дящее нас к ai4-i= ab то после выполнения вычисления

Ю5


получим у = 0 . Этот результат приводит нас к единст­ венному логическому выводу — следующее приращение времени должно быть положительным

Данное условие приведет к увеличению угла а и про­ цесс регулирования будет осуществляться в соответст­ вии с кривой на участке ti12. Ввиду сказанного услов­ ный переход приводит нас от блока 8 к блоку 6. В этом блоке предусматривается увеличение значения Дн (пер­ воначального значения t) на 1, после чего безусловный переход приводит к блоку 3, где вычисляется новое зна­ чение утла а. На этом очередной цикл операций закан­ чивается и начинается новый, отличающийся от преды­ дущего лишь тем, что теперь разница между предыду­ щим и вычисленным значением бущет меньше нуля. Это условие приводит к тому, что последующей операцией будет проверка, не превышает ли полученное значение

авеличины аз и т. д.

Вданном алгоритме при вычислении последователь­ ности значений а, лежащих на участке U—/г, порядок выполнения операций выглядит таким образом:

~>5—>6-^3^4 .... Многократное выполнение последова­

тельности одних и тех же операций называется циклом программы. В данном случае цикл состоит из блоков 3, 4, 5 и 6.

С о с т а в л е н и е п р о г р а м м ы. Эта работа являет­ ся наиболее ответственным этапом программирования и представляет собой исключительно сложный и трудоем­ кий процесс. В процессе составления программы проис­ ходит детализация блок-схемы программы с учетом ха­ рактеристик конкретной ЭВМ. В результате исходный алгоритм записывается в виде последовательности кон-

1

 

 

кретных

элементарных

 

 

 

операций.

Ввиду своей

3

В ы чи с л е н и е

a i + ^ 4 a t i2t * b

сложности ‘процесс про­

 

 

 

граммирования требует от

4

 

д =а i ~ o c i + t

ггросрa'MiMHCTOiB нзаряжен­

В ы чи сле ни е

ного внимания, что, впро­

j

^ П р и & * 0

| n p u t > 0

чем, только 'уменьшает

число ошибок, допущен­

1

___у

ных при программирова­

В -

В ы чи сле ни е

х =

нии, но не исключает их.

 

 

Процесс

составления

 

 

 

программы

состоит из

Рис. 2.30. Часть общей блок-схемы

тРех этапов,

вначале со-

алгоритма

 

ставлиется

логическая

lot


•схема программы, затем формируется программа в ус­ ловных адресах и, наконец, программа в действитель-’ ных адресах.

Логическая схема программы представляет собой детальную запись последовательности операций, реали­ зующих блок-схему программы. При этом в состав опе­ раций могут входить лишь те, выполнение которых пре­ дусмотрено конструкцией ЭВМ. В качестве примера представим в виде логической схемы программы опера­ ции, пер'еч1и'сле1н,ные в 'блоках 3, 4, S (|рис. 2.29). Для удобства эти блоки изображены отдельно на рис. 2.30. Логическая программа, реализующая указанные в бло­ ках операции, будет выглядеть следующим образом:

0 . t i + i • t i + i — t 2i + \ ;

1• А ■tzi+il

3.At2i+i-\-B;

4.V A tzi+i + В;

5.ai—a?:+i=A;

6.Условный переход по Д>0;

7. = а{+1—ар

8.Условный переход по у>0.

Составление программы заключается в решении двух вопросов — установлении последовательности команд самой программы и распределении памяти ЭВМ для хранения исходных данных, команд и т. д. Эти две за­ дачи противоречивы, поскольку нельзя распределить память, не зная числа команд в программе, а програм­ му, в свою очередь, нельзя составить, если неизвестны адреса исходных данных и результаты вычислений. Про­ тиворечие можно решить, если составлять программу, не обращая внимания на конкретные адреса ЭВМ и за­ писывая адреса в виде буквенных и цифровых обозна­ чений. Такие адреса называются условными. После со­ ставления программы в таком виде условные адреса заменяются конкретными числовыми значениями. Эта программа называется рабочей программой, или про­ граммой-в действительных адресах.

В качестве примера запишем в условных адресах программу, алгоритм которой приведен на рис. 2.30. Со­ ставление такой программы начинается с установления условных адресов ячеек, где предполагается размещать

107

команды, исходные данные и т. д. Размещение ячеек с условными номерами в памяти ЭВМ показано на рис. 2.31а. На датойом этапе под памятью подразумевается

и ) _____________________________________ 5)_______________________________

то нч _ЛО_

Адрес ячейа ш для разме­ *щечая команд

Р'О

-РЧ

Р+2

А

в

41

Р*3

0*6

Р*5

ос2

а

1

р*В

Константы

 

с*0

сч

с*г

1*0

i*i

1*2

 

М асси в

с програм м ой

ввода

 

2i*t

41

П

 

 

т о

 

 

 

 

 

1*3

 

 

0081

0081

0083

0086

0685

 

Содержание

X

X

+

V"4

 

 

ячейки Оля разме­

Команды для реализации блоков 5,6 ,1

щения исходных донна

 

 

 

 

 

 

 

' Массив

 

0W6

0101

о т

0103

ОНО

от

(XV0

 

-

 

‘1.1

«1

+ i

А

а*/

(х+2

оно

0-1*1

 

 

о т

о т

0 /15

0116

от

 

 

в

o il

а г

0

1

а 1*1

CC-fJ

 

 

о т

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончательные

результаты

Операт ивное ЗУ

 

С*3

 

 

Промежуточные

результаты

 

 

I

Память

звм

\

 

I

 

 

I

 

Рис.

2.31. Размещение ячеек

с условными

'номерами и н а м я т ЭВМ

( а )

н рабочем программы к оперативном

ЗУ ( б )

ЗУ вообще без уточнения его вида. Принимается усло­ вие, при котором номера ячеек, предназначенные для размещения команд программы, будут обозначаться, например, в виде /г + 0, /г-|-1, /г+2 .... номера ячеек для исходных данных будут обозначаться /+0, /+1 ... н т.д. Константами в пашем примере будут значения А, В, <ц< О и 1. Исходными данными являются значения /i+1( и ut, а окончательными результатами вычислений будем считать текущие значения а. Разместим перечисленные выше величины в соответствующих массивах, как пока­ зано в табл. 2.3. Получаемые в процессе вычисления промежуточные данные, а также значения Д н у будем размещать в массиве с адресами с+0, с+1 и т. д. Счи­ таем также, что гипотетическая ЭВМ, на которой реша­ ется наша задача, является трехадресной.

Имея теперь все исходные условия, запишем про­ грамму, составленную в условных адресах, в виде табл. 2.3.

Из таблицы видно, что команда умножения, разме­ щаемая в ячейке, /г+0, служит для выполнения опера­ ции возведения в степень значения /2;.|_ь Величина

I0S


 

А дрес

 

К о м анда

 

 

Р е зу л ь т а т оп ер ац и и ,

 

 

 

 

 

 

ком ан-

 

 

 

А дрес

 

заносим ы й

в З У по

 

ды

;

О п ерац и я

1-й

2-й

3 -й

тр еть ем у

а д р е с у

 

 

 

 

 

 

 

1

£

0

У м н ож ен и е

/ + 0

/-1-0

с + 0

I 2

 

 

 

 

 

 

 

 

 

‘ н - 1

 

2

/Н - 1

У м н ож ен и е

 

р + 0

с + 0

с + 0

A t2

 

 

 

 

 

 

 

 

 

л ‘ М -1

 

3

£ + 2 С л ож ен и е

 

с + 0

р + 1 с + 0 •4 / г + 1 + в

 

4

к+

3

И звл еч ен и е

корня

с + 0

-

d + 0

V А $ + 1 +

В

5

+ | - 4

Вы читание

 

1 + 1

d + 0

с + 0

Д = а , —

а £+1

6

/ Н - 5

У словн ы й

п ер ехо д

с + 0

р + 4

£ + 0 0

 

 

 

 

при Д > 0

 

 

7

£ + 0 0

Вы читание

 

d + 0

р + 2

с + 0

Г = « г+ 1 — оц

8

£ + 0 1

У сл овн ы й

п ер ех о д

 

 

 

 

 

 

 

при y > 0

 

с + 0

р + 4

£ + • • ■

 

 

записана по адресу /+0. При выполнении операции про­ изводится двукратное обращение к ячейке /+ 0 (в соот­ ветствии с первым н 'вторым адресами). .Результат опе­ рации записывается в массив для размещения проме­ жуточных результатов в ячейке с адресом с+ 0.

По команде /г+1 из массива для размещения кон­ стант из ячейки с адресом ц+ 0 считывается постоянная А, из ячейки с адресом с+ 0 считывается значение t\.и, и эти две величины перемножаются. Полученный резуль­ тат записывается вновь в ячейку с+ 0, причем находив­ шаяся там величина t2i+i в момент записи стирается. Аналогичным образом выполняется и команда, записан­ ная по адресу/е+2.

О выполнении операции извлечения квадратного кор­ ня следует сказать несколько подробнее. Существуют ЭВМ, в которых упрощенная конструкция арифметичес­ кого устройства (АУ) не позволяет выполнять указан­ ное действие по одной команде. Это сравнительно ред­ кое действие, а также -ряд других операций могут быть, выполнены путем определенной посладователиноети че­ тырех арифметических действий, представляющих собой: небольшую программу, называемую стандартной под­ программой. Если бы конструкция АУ нашей гипотети­ ческой ЭВМ не позволяла бы извлекать квадратный ко-

Юй