Файл: Бакиров Р.О. Применение современных электронных вычислительных машин при расчете и проектировании конструкций инженерных сооружений учебное пособие.pdf

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

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

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

Добавлен: 05.04.2024

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

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

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

§ 2. ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ

ОСНОВНЫЕ КОМАНДЫ МАШИНЫ

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

Всвязи с тем, что общие принципы программирования не за ­ висят от конкретного типа машины, вопросы программирования! ниже разбираются для условной одноадресной машины, которую в дальнейшем будем называть ЭЦВМ-У.

Для удобства изложения введем несколько обозначений:

0001), 0002) — восьмеричные числа — номера ячеек памяти для размещения программы;

< С > — ячейка, отведенная для хранения величийы /;

(s) — содержимое сумматора (выше указывалось, что одноад­ ресная машина все действия производит через сумматор);

(0) — код операции, например ( + ) и (-» ), обозначает содер­ жание действия, предусмотренного программой ( « + » сложение,

«-> » — безусловная передача управления и т. д.);

(s)= (s) + < / > — содержание сумматора складывается с ве­

личиной I, и сумма записывается в сумматор;

(s) = (s) + (n) — содержимое сумматора складывается с содер­ жимым ячейки номер п, и сумма записывается в сумматор.

Условимся, что все команды машины, за исключением операций управления, имеют стандартную передачу управления.

Арифметические операции

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

22

Арифметические операции имеют коды:

( + ) —

сложение;

(—) — вычитание, (X ) — умножение, ( :)

— деление.

< / > .

Запись команд производится в виде ( + )

(п) или ( + )

В частности, приведенные выше команды означают, что содер­ жимое сумматора складывается с содержимым ячейки номер п или

содержимым ячейки для хранения величины I.

 

приведена

в

Система

арифметических

операций

ЭЦВМ-У

табл.

3.

 

 

 

 

 

 

 

 

Т а б л и ц а

3

 

 

 

 

 

 

 

 

 

 

Опе­

Код

Наименова­

Вид

 

Содержимое

Условия образо­

ние опера­

 

вания сигналов

рации операции

ции

команды

сумматора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ш =

1

<р =

1

 

 

 

 

 

 

 

 

 

 

 

 

й>

 

 

 

 

 

 

 

 

 

 

 

р >

N

Sьа

+

Сложение

( + > < / >

( S ) =

( . * ) + < / >

( « ) < 0

о

 

 

 

 

 

 

 

 

 

 

0)

 

 

 

 

 

 

 

 

 

 

 

 

 

3*

Вычитание

( - х

/

>

(«) =

( s ) —

<

1 >

( * ) < 0

р >

N

Я

0>

X

Умножение

(X )

<

1 >

( s ) =

( s ) x

<

1 >

(*) <

0

р >

N

2

-е*

 

 

 

 

 

 

 

 

 

 

 

 

 

Я

 

Деление

( : ) < / >

(«) =

(*): <

t >

(*) <

0

Р >

N

о.

 

<

 

 

 

 

 

 

 

 

 

 

 

 

 

Из этой таблицы следует, что при принятых обозначениях ни­ чего запоминать не нужно, ибо вид команды соответствует обще­ известной математической символике.

Логические операции

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

 

 

 

 

 

Т а б л и ц а 4

Опе­

Код

Наименова­

Вид

Содержимое

Условия

образо­

ние опера­

вания сигналов

рации операции

ции

команды

сумматора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«0=

1

ср = 1

Логи­

( ~ )

Сравнение

( о < i >

(5) = 0 при срав­

(*) +

0

 

чес­

 

содержи­

 

нении

 

 

 

кие

 

мого сум­

 

(s) ФО при нес-

 

 

 

 

 

матора и

 

 

 

 

 

 

ячейки

 

равнении

 

 

 

 

 

адресной

 

 

 

 

 

 

 

части

 

 

 

 

 

23


Операции управления

Мы рассматриваем машину с последовательным порядком вы­ полнения команд, поэтому для разветвления вычислительного про­ цесса служат операции управления: безусловной и условной пере­ дачи управления, передачи управления с возвратом и останов (см. также § 1). Основные характеристики этих операций приведены в табл. 5.

 

 

 

 

 

Т а б л и ц а 5

Опе­

Код

Наименование

Вид команды

Условия

образования

опе­

рации

операции

сигналов ш<р

рации

 

 

(-*)

Безусловная пе­

(->) (0125)

Независимо

от сигнала м уп-’

 

 

редача управ­

 

равление передается коман­

 

 

ления

 

де 0125; сигнал — не выра­

 

 

 

 

батывается

 

 

 

Условная

пере­

 

 

 

( i )

дача

управле­

( ¥Г > )

<0125)

1 е н и я

 

ния

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

со

( « - - в

Передача

управ­

--s”)

(сн)

а.

 

ления

с

возвра­

 

 

с

 

том

 

 

 

 

>>

 

 

 

 

 

 

 

 

 

 

 

При ш = 0 — передача управ­ ления следующей команде, при ш = 1 — команде 0125; сигнал <р — Hte вырабатыва­ ется

Управление передается к стандартному блоку, начи­ нающемуся с ячейки „сн* последующим возвратом к с месту программы, откуда производилась эта передача

управления; сигналы ы и <р не вырабатываются

(Стоп) Останов

(Стоп) (0000) Машина останавливается

Вспомогательные операции

Вспомогательными будем называть операции пересылки, пере­ вода и печати, характеристика которых приведена в табл. 6.

24


О пе­

Код

Наименова­

 

 

Содержимое

ние опера­

Вид команды

рации операции

сумматора

ции

 

 

 

 

 

 

 

 

(П)

Пересылка

(П)

(0125)

Пересылка

 

 

числа

 

 

числа из

3

 

 

 

 

сумматора в

 

 

 

 

ячейку 0125:

V

 

 

 

 

 

X

 

 

 

 

0125 = (s)

у

 

 

 

 

 

О

 

 

 

 

 

 

 

 

 

 

V

(5)

Вызов чис­

(S)

(0125)

Вызов числа

о

С

 

ла

 

 

из ячейки

номер 0125 в сумматор

(s) = (0125)

Т а б л и ц а 6

Условия образо­ вания сигналов

и» = 1

9 = 1

(s) < 0

V

 

(10-> 2)

Перевод

(10 -> 2) (s)

Перевод со­

 

 

 

числа

 

держимого

 

 

 

 

 

сумматора

 

 

ев

 

 

 

из десятич­

 

а

 

 

 

ной в двоич­

 

О

 

 

 

 

 

 

 

о>

 

 

 

ную систему

 

с.

 

 

 

 

 

 

 

 

(2 -*■ 10)

(2 -> 10) (s)

Перевод

 

 

 

 

(2

10)

 

 

 

(Пщ)

Печать чис­

(П,р) (s)

Печать деся­

 

 

 

ла

 

тичного чис­

 

 

 

 

 

ла,

нахо­

в

 

 

 

 

 

дящегося

 

 

 

 

 

сумматоре

 

X

 

 

 

 

 

 

 

«в

 

 

 

 

 

 

 

а1

(Пв)

 

(П») (s)

 

 

 

 

0>

*

Печать восьме­

 

 

 

 

 

ричного чис­

 

 

 

 

 

ла (коман­

 

 

 

 

 

да),

нахо­

в

 

 

 

 

 

дящегося

 

 

 

 

 

сумматоре

 

ПРОСТЕЙШАЯ ПРОГРАММА

Дана четырехшарнирная прямоугольная обделка подземного сооружения, на которую действуют нагрузки от горного давления q и е (см. рис. 1). Максимальная величина изгибающего момента в верхнем ригеле определяется по формуле (1). Требуется соста­ вить программу однократного использования в предположении, что

25


исходные данные q, /, 8 находятся в памяти машины соответствен­

но в ячейках < q > , <С1>, < 8> .

Используя принятые обозначения и рассмотренную выше систе­ му команд, для вычисления М по формуле (1) легко составить следующую простейшую программу 2.

П р о г р а м м а 2

команд

0001

0002

0003

Команды

V ч“■/« 152,

Л

( х ) < / >

(X) < 4 >

Пояснения команд Команды Пояснения

(s) =

/

 

0004

( •)

<

8 >

(s) =

М

(*) =

г-

0005

(П)

<

м >

< М >

= М

( s ) = q i

2

0006

(Стоп)

0000

Останов

В данном случае мы имеем следующие элементы описания за­ дачи: постановку (характеристика физической сущности, расчетная схема), математическую формулировку [формула ( 1)], исходные данные — (q, I, 8), выходной результат (величина М) и особое тре­ бование к программе (одноразового пользования, исходные данные находятся в памяти). Ввиду исключительной простоты задачи опи­ сание последовательности вычислений производить в данном слу­ чае не потребовалось.

Из элементов программирования в данном примере налицо лишь программирование в условных (содержательных) адресах, так как выбор численного метода и алгоритмизацию в данном слу­ чае производить не требуется.

РАЗВЕТВЛЯЮЩАЯСЯ ПРОГРАММА

Наличие в машине логических операций позволяет составлять программы, обеспечивающие разветвление вычислительного про­ цесса.

Пусть требуется построить разветвляющуюся программу для предыдущего примера при условии, что после вычисления макси­ мального момента по формуле ( 1) определяется напряжение в опасном сечении согласно выражению

где W — момент сопротивления

элемента

ригеля, определяемый

по формуле

 

W =

(5)

 

6 ;

 

b, h — соответственно ширина и высота элемента.

26


Кроме того, следует предусмотреть сравнение расчетного и до­ пускаемого (для материала конструкции) напряжений согласно условию

а — [о] > 0 .

(6)

При выполнении этого условия необходимо выдать на печать единицу < 1> (признак того, что расчетное напряжение недопусти­ мо для материала конструкции) и остановить машину; в противо­ положном случае нужно напечатать а и остановить машину.

Принципиальное отличие описания рассматриваемой задачиот предыдущей заключается в том, что оно, во-первых, кроме рас­ четных формул, содержит логическое условие (6), во-вторых, кро­ ме математической формулировки, включает описание последова­ тельности вычислений, приводящее к конечному результату. Прав­ да, исключительная простота задачи позволила произвести лишь, словесное описание последовательности вычислений, хотя при ре­ шении практических задач это сравнительно редкое явление.

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

команд

0001

2

3

4

5

6

7

0010

1

2

Команды

(X ) < / >

(X ) < q >

( : ) < 8 >

(П) < М >

(S) < Ъ > (X ) < h > (X ) < h >

( :) < 6 >

(П) < w>

Пояснения

команд

 

 

(s) =

/

3

(s) =

П

4

(s) -

qP

5

(s) =

M

6.

< M >

= Af

7

(s) =

b

0020

(s) =

bh

1

(s) =

b h a

2

(s) =

W

3

< w > = w

4

 

 

5

 

 

П р о г р а м м а

3

Команды

Пояснения

(5)

<

M >

(*)

=

M

( : )

<

W >

(.9) =

0

(П) < a >

< а > = а

( - )

<

[а] >

(s).=

а —

( P ) ( 0 0 2 3 ) :

to =* 0

 

0020■

( 0 = 1

—> 0023

 

 

 

( S ) < 1 >

( s ) = l

(П,0)

(s)

Печать 1

(-»•)

(0025)

 

 

 

(S)

< s >

C*) = a

(Пю)

(s)

Печать a

(Стоп) (0000)

Останов

27