Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Справочник проектировщика систем автоматизации управления производством

..pdf
Скачиваний:
6
Добавлен:
19.11.2023
Размер:
39.87 Mб
Скачать

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

говле

и обслуживании,

организации научно-исследовательских работ, военком

деле

и т. п.1

черты метода исследования операций,

Приведем характерные

1.Системный подход к постановке и анализу задач. Решение связывается с рас­ смотрением задачи в целом, критерии эффективности выбираются с точки зрения ин­ тересов всей системы.

2.Отказ от рассмотрения объектов, как таковых. Например, выбор оптималь­ ной структуры ЛСУП, назначение оптимального маршрута перевозок грузов авто­ транспортом, определение потребного числа АТС для крупного города — эти, каза­ лось бы, весьма разнородные проблемы связывает общин единый операционный ме­ тод исследования. Здесь главное внимание уделяется не содержанию решения задачи,

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

3.Математизация проблемной ситуации, количественное описание процессов и связей. Для АСУ характерны весьма сложные динамические ситуации, которые нельзя изучить традиционными экспериментальными методами. Здесь можно исполь­ зовать только мысленные эксперименты, методы эвристического программирования.

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

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

1 РаЙветт П., Акофф P. Л. Исследование операций. Пособие для административно-управ­ ленческих работников. М., «Мир*, 1966.

Г Л А В А VIII

ПРОГРАММИРОВАНИЕ

1. ОСНОВНАЯ ТЕРМИНОЛОГИЯ

Система счисления — способ записи чисел при помощи цифр.

Позиционная система счисления — система изображения чисел, при которой одна и та же цифра имеет различный «вес» в зависимости от места, занимаемого ею в изображении чисел.

Ячейка памяти ЭВМ — устройство, предназначенное для хранения одного числа

(чисел).

операции, выполняемых ЭВМ.

Система команд ЭВМ — набор элементарных

ЭВМ с трехадресной системой команд — ЭВМ,

в коде команды которой указан

код операции и три адреса ячеек для хранения исходных данных (Лх и Л2) и резуль­

тата операции (Л3). Такими ЭВМ являются ЭВМ типа БЭСМ-4М, М-222.

состоит

ЭВМ с одноадресной системой команд — ЭВМ, код команды

которой

из кода операции и одного адреса (ЭВМ типа «Урал», БЭСМ-6).

которой

состоит

ЭВМ с двухадресной системой команд — ЭВМ, код команды

из кода операции и адресов первого и второго операндов (ЕС ЭВМ, «Минск-22», «Минск-32»).

Конъюнкция

(логическое

умножение) — логическая операция,

выполняемая

по правилам приведенным в гл. IX, п. 1.

операция, выполняемая по

Дизъюнкция

(логическое сложение) — логическая

правилам, приведенным в гл. IX, п. 1.

 

 

операция,

Отрицание равнозначности

(сложение по модулю два) — логическая

выполняемая по правилам, приведенным в гл. IX, п.

1.

 

и внешнее

Внешние устройства ЭВМ — устройства ввода-вывода информации

запоминающее

устройство.

 

однократного

вычисления по

Простая (линейная) программа — программа для

заданным формулам, составленная из команд со стандартной передачей управления. Команда со стандартной передачей управления — команда ЭВМ, передающая

управление следующей по порядку ячейке.

Расписка формулы — определение последовательности действий для организации вычислений по формуле.

Константы программы — числа, записанные в ячейки памяти перед началом работы программы.

Рабочие ячейки — ячейки, в которых хранятся промежуточные и конечные результаты вычислений.

Разветвляющаяся программа — программа, включающая кроме команд со стан­ дартной передачей управления команды с условной передачей управления, при по­ мощи которых осуществляется разветвление программы.

Ветвь — отдельное возможное направление вычислений.

Цикл — многократно повторяющийся участок вычислительного процесса. Цикл программы — участок программы, многократно используемый в процессе

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

ление

(если

к этому времени еще не выполнено заданное условие) передается его

первой

команде.

Счетчик

числа циклов — ячейка, к содержимому которой прибавляется (или

вычитается)

некоторое число в процессе выполнения циклической программы, и

по которой

проверяется окончание цикла.

. Переадресация команды — изменение команды путем прибавления (или вычи­ тания) к ее адресам некоторых чисел.

Подпрограмма — часть программы, имеющая самостоятельное значение. Автоматическое программирование — совокупность всех методов, которые при­

званы возложить работу по подготовке и программированию задач для решения

на ЭВМ на сами вычислительные машины.

 

Стандартная подпрограмма — общеупотребительная программа, записанная на

машинном языке и построенная так, что ее можно легко включать в состав

дру­

гой программы в любом месте.

реше­

Мультипрограммирование — обеспечение возможности использования для

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

Математическое обеспечение ЭВМ — совокупность алгоритмов, программ решения задач и- управления процессом их решения.

Операционная система — набор технико-программных средств ЭВМ, органи­ зующих и автоматизирующих процесс прохождения задач на ЭВМ.

2. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ

Рассмотрим позиционные системы счисления, применяемые в ЭВМ. Любое рациональное число N может быть представлено в виде разложения

N =■ОСnCLn+ &jt-\CLn * + ... +

—I— + CCP+

1 + Gt_oД "+ ...

,

где a = const — основание системы счисления; щ — цифры системы счисления, имею­ щей основание а (число различных цифр равно я); п — номер разряда.

Сокращенная запись числа N имеет вид

N = а пап_г ... аоО^ао, а_±а_2

Общепринятая система счисления — десятичная. В нейоснование равно десяти и используется десять различных цифр; 0,1,2,3,4,5,6,7,8,9. Например, десятичное число 3972,51 можно записать в виде разложения:

3972,51=3. 103 + 9- 102+7 - 101 + 2- 10о+ 5!. 10"i + l . Ю'2.

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

Двоичная система счисления позволяет существенно упростить представление чисел в ЭВМ (с помощью схем с двумя устойчивыми состояниями равновесия: тригге­ ров, магнитных элементов и т. п.) и техническую реализацию арифметических опера­ ций. В двоичной системе используется только две цифры (нуль и единица), с помощью которых записываются числа. Например, десятичное число 12,5 в двоичной системе выглядит так:

12,5(10) = 1 -23+1 .22 + 0 .2 1 + 0 .2° + 1 .2-1 = 1100,1(21

(в скобках записаны основания систем счисления).

В восьмеричной системе используются восемь цифр: 0,1,2,3,4,5,6,7. Запишем в ка­ честве примера десятичное число 764,125 в восьмеричной системе:

764,125(10) = 1 • в3+ 3 • 82 + 7 • 81+ 4 .8 ° + 1 . 8 “* = 1374,1 (в).

Для перевода числа из восьмеричной системы в двоичную достаточно заменить каждую цифру восьмеричного числа ее двоичным эквивалентом, состоящим из трех цифр, например:47

7

4

1

1( 8)

ÎÎT

Î10

ооГ TÎ0

010 ooQ,.

Шестнадцатеричная система счисления имеет шестнадцать цифр: 0, 1,2, 3, 4, 5, 6,

7, 8, 9, А , В, С, D, Е, /\

где^4(10) =

= Иск»» ^ао/ = 12(10), D(i6) = 13(10),

£ Q6» =

F(10) =

15(10,.

 

Запишем десятичное число 578960 в шестнадцатеричной системе:

578960(la,= 8 . W + D- 164-5 • 162+ 9 • 164-0 • 16»= 8D590ae>-

Перевод из шестнадцатеричной системы в двоичную так же прост, как и перевод из восьмеричной, только при этом надо заменять каждую шестнадцатеричную цифру ее четырехразрядным двоичным эквивалентом, например:

,-5—.

а ил

ш Т ООП

0111 1Ш0^.

Числовые данные, начальные условия, коэффициенты и т. п., необходимые для решения задачи, вводятся в ЭВМ в двоично-десятичной системе, т. е каждая цифра десятичного числа записывается в виде четырехразрядного двоичного числа. Напри­ мер, десятичное число 197,54 в двоично-десятичной системе имеет вид

ооо1

Ю01

o u i,

0 Ю1

oioo(2_lü}

1

9

7,

5

4(Ю)

Перевод десятичных чисел в двоично-десятичные осуществляется в процессе пер­ форации их на перфокарты или перфоленту с помощью перфоратора или телетайпа.

Перевод двоично-десятичных чисел в двоичные выполняется ЭВМ по специальной программе. Числа из ЭВМ выводятся в десятичной или восьмеричной системе, а коман­ ды — в восьмеричной или шестнадцатеричной.

3.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В МАШИНЕ

ИПРОГРАММЕ

Формы представления чисел в ЭВМ. Основные формы представления чисел в ЭВМ: естественная (с фиксированной запятой); нормальная (с плавающей запятой). В соответствии с этим ЭВМ делятся на машины с плавающей и с фиксированной за­ пятой.

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

В ЭВМ с плавающей запятой число представляется в виде

N = N0aP,

где | N0 | < 1; N0 — мантисса; р — порядок числа; а — основание системы счис­ ления.

Например, двоичное число в форме с плавающей запятой в двоичной системе счис­ ления представляется так:

1011011,1101 =0,1011011М01 . Ю т

Запись чисел в ячейках памяти ЭВМ и на бланке программы. Заполнение ячейки памяти ЭВМ «Минск-22» в режиме с фиксированной запятой, представлено на рис. VII 1.1, а. Знак «+» кодируется цифрой «0», а «—» цифрой «1». Например, двоич­ ное число —0,11011 в указанной ячейке запишется так:

1

]101100 ... 000 .

знак

число

 

(3G разрядов)

На рис. VIII. 1, б показано заполнение ячейки памяти ЭВМ «Минск-22» в режиме с плавающей запятой при хранении двоичного числа. В этом случае, например, дво­ ичное число 0,1101101 • 10-100 запишется следующим образом:

знак

у110110100 ... оо

.

1

^

«- оооюо -■

мантисса

 

знак

 

порядок

числа

(28 разрядов)

 

порядка

 

 

0

1

2

3

4

33

34

35

36

Мантисса

Знак

числа

а)

б)

Признак Код модификации операции

адресов

A i

А а

А я

 

 

 

 

 

 

 

 

 

 

д )

 

 

 

 

0

1

2

3

 

4

5

6

7

S

17

18

19

 

 

 

 

Код операции

 

 

 

Адресная часть

 

 

 

 

Признак

 

 

 

 

 

 

 

 

Признак

 

 

 

 

 

 

 

 

 

 

полноты

 

 

 

JV? блока

 

 

 

 

 

 

 

адреса

 

 

 

 

Адрес

 

 

е)

 

 

 

 

 

 

МОЗУ

 

 

 

 

 

 

 

 

 

 

 

индексной

 

 

 

 

 

 

 

 

 

ДЛЯ

 

 

 

 

 

 

 

 

 

 

 

ячейки

 

 

 

 

 

 

 

 

 

А 1 |

Ап

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

6

7

S

9

10

11

12

13

23

24 25

26

35 36

 

Код

 

 

 

Индекс-

 

 

 

Л1

 

 

 

 

операции

 

 

 

адрес

 

 

 

ж )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. VIII. 1. Запись чисел в

ячейках памяти ЭВМ:

 

 

а — двоичные числа в режиме работы с фиксированной запятой в ЭВМ «Минск-22»; о — с пла­ вающей запятой; в — двоично-десятичные числа с плавающей запятой; е — алфавитно-цифро­ вые символы; д — код трехадресной команды в ЭВМ «М-222»; а — код одноадресной команды в ЭВМ «Урал»; ж — код двухадресной команды D ЭВМ «Минск-22»

Разряды ячейки памяти ЭВМ «Минск-22» при хранении в ней двоично-десятичного числа с плавающей запятой распределяются так, как показано на рис. VIII. 1, в.

На стандартном бланке для ЭВМ «Минск-22» десятичные числа с плавающей запя­ той записываются в следующем порядке: слева — знак числа, во 2 и 3-й графах — первые четыре десятичные цифры мантиссы (по две в каждой графе), в 4-й графе

последние три

цифры мантиссы и знак порядка; справа — две десятичные цифры

порядка.

 

 

 

 

 

Например,

десятичное число —396,72 = — 0,39672• 103 записывается на бланке

программы следующим образом:

 

39

67

200

+

03

Современные ЭВМ могут оперировать не только с числами, но и с произвольным текстом. Текст задается набором алфавитно-цифровых символов. Такими символами могут быть буквы, цифры, знаки отношений, препинания и т. п. При записи и хране­ нии в ячейках памяти каждый символ заменяется цифровым эквивалентом. В ЭВМ «Мннск-22», например, символы кодируются шестиразрядиыми двоичными кодами, причем в одну ячейку можно записать до шести алфавитно-цифровых символов (рис. VIII.1, г).

Запись текста, состоящего из шести алфавитио-цифрЬвых символов на програм­ мном бланке выполняется так: 1 и 5-я графы не используются, а во 2, 3 и 4-й графах записывается по два символа.

Например, запись вида

В1 КП Ш2

означает, что в ячейках записаны шесть символов В1КПШ2, каждый из которых закодирован шестью двоичными разрядами.

Кодирование команд и запись в ячейках ЭВМ и на бланке программы. Программа решения задачи состоит из отдельных команд, каждая из которых описывает одно какое-либо действие. В качестве примера схематически запишем команду для выпол­ нения следующей операции: «Вычесть из числа а, хранящегося в ячейке а, число Ъ% хранящееся в ячейке р, и поместить результат а b в ячейку у».

аР У

вычесть

a

b

a — b

Номера ячеек являются целыми числами и представляются в двоичной системе счисления. Символ операции кодируется двоичным числом. Каждая команда хра­ нится в отдельной ячейке, причем определенное число разрядов ячейки отводится для записи кода операции и адресов ячеек, в которых хранятся исходные данные и результаты. На рис. VIII. 1, д представлена структура кода команды для трехадресной ЭВМ типа М-222, ячейка которой имеет 45 двоичных разрядов. Разряды нумеруются справа налево. Под код операции отводятся шесть разрядов, под признаки модифика­ ции адресов — три разряда. Остальные 36 разрядов, разбитые на три группы по 12 разрядов, образуют адресную часть команды и изображают соответственно адреса ячеек а, Р и у. Если для рассмотренного выше примера код операции вычитания при­ нять равным 10(2), признаки модифйкации адресов принять равными 1, а адреса ячеек а = 1101(2>, Р = 11Ю|2>, у — Ю001(2;, то команда в ячейке ЭВМ запишется в виде

111

-

000010

000000001101

000000001110

000000010001

^

.

у, „-----'

У ^

'

У

у

У .. V

признак

 

код

1-й адрес

 

 

2-й адрес

3-н адрес

 

моднфи-

 

операции

 

 

 

 

 

 

кацни

адресов

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

7 02 0015 0016 0021

На рис. VIII. 1, г и VIII. 1, ж представлена запись кода команд в ячейках одноад­ ресных и двухадресных ЭВМ.

4. СИСТЕМА КОМАНД ЭВМ

Элементарные операции, выполняемые ЭВМ, делятся на следующие группы:

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

 

логические операции;

 

операции

передачи управления;

_

операции

над командами;

операции обращения к внешним устройствам.

Арифметические и логические операции выполняются со следующими модифи­ кациями:

(Ai) * (Аз) А 2;

(Aj) * (Аа) => См; (См) * (Ai) z=> А2;

(См) !»*(Ai) => См.

Принятые обозначения:

(Аз) — содержимое ячейки, имеющей адрес Аг; (А2) — содержимое ячейки, имеющей адрес А2;

(См) — содержимое сумматора арифметического устройства ЭВМ;

=> — символ операции пересылки, например, запись (Ai) А2означает: содержимое ячейки, имеющей адрес А*, засылается в ячейку по адресу А2 (при этом предыдущее содержание ячейки А2 стирается); * — один из следующих символов операций:

'

•+

сложение;

арнфмстнч

вычнтани ;

X

умножение;

ские

/

деление;

операции

|—| вычитание модулей;

,

©

циклическое сложение;

логические

Л

логическое умножение (конъюнкция);

V

логическое сложение (дизъюнкция);

операции

 

 

отрицание равнозначности{

(сложение по модулю 2).

Запись вида (Аг) + (А2)

А2 означает: число из ячейки с адресом At сложить

с числом из ячейки с адресом А2 и сумму записать в ячейку по адресу А2. Остальные операции имеют аналогичный смысл.

Логическое умножение и логическое сложение выполняются поразрядно над со­ держимым соответствующих ячеек. С помощью логического умножения выделяют в ячейке нужные разряды, погасив остальные. Логическое сложение служит для фор­ мирования в ячейке нужного содержимого. Поразрядное сложение (сложение по мо­ дулю 2) состоит в поразрядном сложении содержимого соответствующих ячеек и слу­ жит для сравнения двух чисел. Если, например, записана операция (Ах) “ (А2) => См, то в тех разрядах, где содержимое ячеек At и А2 одинаково, в См записывается нуль, а в остальных — единица. При совпадении содержимого ячеек Ах и А3 в-См записывается нуль.

Операции передачи управления лишь изменяют порядок выполнения команд, а действий над содержимым ячеек памяти не выполняют. Существуют команды ус­ ловной и безусловной передачи управления.

Команды условной передачи управления:

1) передача управления по знаку («идти по знаку»): ИЗН; Ах, А.,

т

Если результат предыдущей операции имеет знак «+», то управление передается команде, записанной^по адресу Ai, если же «—» — то управление передается команде по адресу Л2;

2) передача управления по нулю («идти по нулю»):

ИН; Лх, Л2

Если при выполнении предыдущей операции признак нуля не вырабатывается, то осуществляется передача управления по Аг\ при наличии признака нуля управле­ ние передается по Л2 (признак нуля вырабатывается после выполнения арифметиче­ ской операции, если результат этой операции равен нулю).

Команды безусловной передачи управления: 1) команда

БП; Ai, Ап

означает, что управление передается команде, хранящейся в ячейке Л*, результат предыдущей операции записывается в ячейку Л2;

2) команда безусловной передачи управления с возвратом

БПВ; Ai, А2

используется при обращении к подпрограммам. По этой команде управление пере­ дается команде с адресом Alt а в ячейку Л2 засылается код команды «БП; К + 1, 0000», где К — адрес исполненной команды перехода к подпрограмме. Используется для передачи управления из любого места программы какому-либо ее участку с по­ следующим возвратом (после исполнения этого участка) к команде, перед которой был совершен переход.

К командам управления также относится команда останова машины:

СТОП

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

Команды переадресации имеют вид:

а) СФ; Аг, А2= ^А х

Изменяемая команда, находящаяся в ячейке Ai, рассматривается как некоторый код, с которым складывается в режиме с фиксированной запятой константа переадре­ сации, размещающаяся в ячейке Л2. После преобразования измененная команда засы­ лается в свою ячейку Аг\

б) ВФ; Аг, A2z=$A1

Это команда аналогична предыдущей, только вместо сложения кодов выполняется вычитание.

Операции сдвига следующие: а) сдвиг логический

ЛСД; Аг, А2=>Ао

По этой команде весь код ячейки А2сдвигается вправо или влево. Величина и на­ правление сдвига указывается в константе сдвига, записываемой, как порядок числа

вячейке Аг. Результат записывается в ячейку Л2, б) сдвиг арифметический:

АСД; Ai, А 2= $ А 2

Команда исполняется аналогично ЛСД, с той разницей, что сдвигается только цифровая часть кода (знаковый разряд с учетом того, что запись числа в форме с фик­ сированной запятой остается неизменным).

Операции обращения к внешним устройствам делятся на операцию «Запись на ленту» и «Чтение ленты в МОЗУ».

Считается, что внешняя память ЭВМ состоит из нескольких НМЛ. 1) Операция «Запись на ленту» состоит из двух команд:

а) предварительная команда ФЛП; pq, /,

где р — номер шкафа НМЛ; q — номер лентопротяжного механизма; С— номер ячей* ки МЛ, начиная с которой производится обмен, состоит из номера зоны и номера ячейки зоны;

б) исполнительная команда: ФЛИ; /г, а2

где к — число переписываемых кодов; а2 — адрес ячейки МОЗУ (магнитного опера­ тивного запоминающего устройства), начиная с которой производится обмен.

2) Операция «Чтение с ленты в МОЗУ»: а) ЛФП; pq, /

б) ЛФИ; к, а2 Операция «Ввод» вводит информацию в оперативную память из вводных

устройств.

Операция печати: ПЧ; Аъ Ао

По адресу Аг записывается константа, которая характеризует форму представ­ ления выводимого кода, систему счисления, а также устройство, на которое проис­ ходит вывод (печать десятичных чисел с плавающей и фиксированной запятой, печать восьмеричных чисел; вывод на ТБПМ, перфоратор или АЦПУ). В ячейке А2 разме­ щен выводимый код.

5.ПРОГРАММИРОВАНИЕ

ВСОДЕРЖАТЕЛЬНЫХ ОБОЗНАЧЕНИЯХ

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

Виды программ

Основные виды программ делятся на: простые (линейные); разветвляющиеся; циклические.

Составление простых (линейных) программ

Составление простой программы рассмотрим на примере программирования, вы­ числений по формуле

у —ах*-\- bx2+cx + d,

причем считаем, что значения a, b, с, d и х известны и введены в память машины. Для вычисления функции у используем схему Горнера:

y= {(a x + b )x + c )x + d .

Программа 1

1)(а) X (х) => См

2)(Сл!) -)- (Ь) См

3)(См) X (х) => См

и Х 2 возвести

4)(Сл) + (с)=>Сл1

5)(См) X (х) г=> Си

6)(Сл!) + (й )= > у

7)стоп

При составлении программы 1 использовано то обстоятельство, что промежуточ­ ные результаты после вычисления у не потребуются.

Составление разветвляющих программ

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

h (-V).

если

X A j,

 

f2 (.v).

если

а* 1 ^ х <

а*2;

h (*).

если

х2^ х <

А'3;

 

если

хп_1 ^ х < х л,

Первая ветвь F (л) =

Д (л),

вторая

F (х) = /2 (л*) и т. д.

Выбор каждой ветви зависит от значения переменной величины, указанной в виде условия: «если х < Ах» и т. д. Этот выбор осуществляется проверкой логического ус­ ловия.

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

На рис. VIII.2 показан вычислительный процесс при сложном логическом усло­ вии.

Составляем программу: наибольшее из двух заданных чисел в квадрат и результат поместить в ячейку Х ик

п-я 8етВь

Рис. VIIГ.2. Разветвление вычислительного процесса при сложном логическом условии

Соседние файлы в папке книги