Главная -> Книги

(0) (1) ( 2 ) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (2)

Окончание табл. L1.

Нажимаемые клавиши

Оператор

Символ

ЯМК34

ЯМК52

оператора

ПО адресу, содержащемуся в

к ппл

К nnAf

КПП \

156-

регистре памяти N

Занести копию х в регистр

памяти, номер которого содержится в регистре памяти N

К П Л

К х-ПЛ

КП N

171-

При невыполнении условия

x<.Q перейти по адресу, содер-

жащемуся в регистре памяти

к х<ОЛ

к х<ОЛ

Кх<0 \

186-

Вызвать копию содержимого

регистра памяти, номер кото-

рого содержится в регистре

КИП \

памяти N

к ИП N

к n-x/v

201-

При невыполнении условия

x = Q перейти по адресу, со-

держащемуся 8 регистре па-

Кх - ON

мяти N

к x-0,V

к X-O.V

вместо In д; и у+х= в обычной алгебраической записи. Это существенно упрощает конструкцию ПМК, так как операторы могут быть исполнены непосредственно после ввода. Синтаксическими правилами входного языка определяются и особенности работы регистров операционного стека X, Y, Z, Т и XI. Регистр X соединен с индикатором, на котором высвечивается содержимое регистра X в десятичной или шестнадцатеричной системе счисления.

Особенности входных языков ПМК подробно рассмотрены в руководствах по эксплуатации и литературе (6, И, 14, 15. Поэтому остановимся лишь на правилах работы операциониого стека.

1. При вводе оператора Сх содержимое регистра X стирается при сохранении неизменным содержимого остальных регистров стека.

2. При вводе оператора f содержимое регистров стека смещается «вверх», причем содержимое регистров X и XI ие изменяется (рис. 3, а).

3. При вводе оператора содержимое регистра X засылается в регистры Y и XI, замещаясь прежним содержимым регистра Y (рис. 3, б).

4. При повороте стека по часовой сгрелке оператором -* содержимое регист-тра X засылается в регистры Т и XI, а содержимое остальных регистров смещается «вниз» (рис. 3, в).

5. При вводе оператора ВХ содержимое всех регистров операционного стека смещается «вверх» (рис. 3, г).

6. При наборе десятичного знака (включая 0) после всех операторов, кроме \, Сх и операторов набора десятичных знаков, содержимое регистров смещается «вверх», а код набранного знака засылается в регистр X (рис. 3, д).

7. При наборе десятичного знака после операторов f. Сх и операторов набора десятичных знаков код вводимого знака засылается в регистр X, при этом содержимое остальных регистров не изменяется (рис. 3, е).



y x xi

x xi



0} Рис. 3


8. При вызове в регистр X копии содержимого регистра N памяти оператором HHN она заносится в регистр X, а прежнее содержимое регистров стека смещается «вверх» (рис. 3, ж).

9. При вводе одноместных функциональных операторов результат операции заносится в регистр X, прежнее содержимое которого заносится в регистр XI, а содержимое остальных регистров не изменяется (рис. 3, э).

10. При вводе двухместных функциональных операторов (кроме Х) результат операции над содержимым регистров Y и X заносится в регистр X, прежнее содержимое которого заносится в регистр XI, а содержимое остальных регистров смещается «вниз» (рис. 3, и).

11. При вводе оператора Х*" неотрицательное содержимое регистра X возводится в степень, равную содержимому регистра Y, прежнее содержимое регистра X засылается в регистр XI, а содержимое остальных регистров не изменяется (рис. 3, к).

Добавим, что при выполнении операторов косвенной адресации содержимое адресного регистра Л модифицируется - отбрасывается его дробная часть, а оставшаяся целая часть уменьшается на единицу при jVO, увеличивается на единицу при 4Л6 и не изменяется при Л>6. После этого косвенное обращение к памяти или косвенный переход выполняются в соответствии с модифицированным содержимым адресного регистра. Это относится и к операторам цикла LNaft, содержимое адресного регистра (Л3) которых уменьшается на единицу после каждого выполнения оператора, передающего управление по адресу N, если содержимое адресного регистра PN больше единицы, или следующему оператору, если оно равно единице.



1.2. Представление алгоритмов программами

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

Составление математических моделей физических объектов и процессов яв ляется предметом естественных наук и теоретической основой подготовки инженеров, причем в практических расчетах обычно используют типовые математические модели или полученные по ним расчетные формулы. Способ решения задачи, выбранный в соответствии с общим подходом (методом) к решению со ответствующего класса задач, отображают алгоритмом - конечной последовательностью однозначных описаний (шагов или операторов) операций, приводящих к искомому результату и выполнимых исполнителем алгоритма. Если исполнитель не может выполнить описание операции, то его заменяют последовательностью более простых и выполнимых операторов. Несмотря на разнообразие все операторы относятся к одному из двух типов.

Операторы первого типа называют операторами присваивания и описывают формулами вида «пусть 1 = А», означающими, что записанный слева от знака равенства символ идентификатора (имя переменной) в дальнейшем равен чис .ly А. значению переменной А или результату вычислений по выражению А. На пример, оператор присваивания х-х-\ означает, что в дальнейшем буквой .г обозначается переменная, значения которой иа единицу меньше предыдущих значений.

Ко второму типу относятся операторы условного перехода, описываемые предложениями «если выполнено (не выполнено) условие Y, то перейти к шагу nil, иначе - к шагу т». Часто такое описание упрощают: «если выполнено (не выполнено) условие У, то перейти к шагу mi». В этом случае предпола гается, что при невыполнении (выполнении) проверяемого условия переходят к следующему по порядку оператору. Оператор безусловного перехода «перейти к шагу т» (который является разновидностью оператора присваивания) используют также для замыкания разветвлений, образовавшихся после операторов условного перехода.

Алгоритмы представляют словесно-формульными описаниями, схемами и программами. Словесно-формульное описание - перечень операторов (шагов) алгоритма, обозначенных порядковыми номерами или символами, является основным способом представления алгоритма. Более наглидио представление алгоритма схемой, на которой операторьГ присваивания обозначают прямоугольниками, а условные операторы - ромбами с выходами «Да» и «Нет», соответствующими переходам при выполнении и невыполнении проверяемого условия. Направления переходов обозначают стрелками, а начало и конец алгоритма овалами.

В качестве примера рассмотрим алгоритм определения числа А~ =л(л-1), (л-2), .... (л-т) размещений из п по m-1 элементов. Для большинства людей эта формула и является описанием алгоритма. Однако для человека, не знаю-



(0) (1) ( 2 ) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100)