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

книги из ГПНТБ / Караваев, Н. И. Электронные цифровые вычислительные машины и программирование учеб. пособие

.pdf
Скачиваний:
5
Добавлен:
20.10.2023
Размер:
8.52 Mб
Скачать

- 240 -

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

кации число 25252525252. Для включения

машины в этом случае

следует на*ать кнопку соответствующего

устройства вывода,

кл^зиь.у "ОБРОС" и кнопку "ПУСК".

 

Длг; включения печатающего аппарата

МП-16 нажимают кла­

виш/ "ПУСК", расположенную на его корпусе, при этом высве­ чиваемся надпись "ВКЛЮЧЕН". Аппарат останавливается автома­ тически, если кончается бумага, при этом на аппарате высве­ чивается надпись "БУМАГА", на световом табло пульта управ­ ления машины - "УВВ".

Адреса ячеек, содержащих выводимую информацию на аппара­ тах СТА и Ш, не печаз*ются.

Каждая из выводимых величин на контрольной ленте аппара­

та СТА печатается в

следующей последовательности: признак

числа, знак,

величина, признак правильности.

В случае

вывода

информации на МП-16 признак числа и

признак правильности не печатаются, а печатается лишь са­ ма величина со своим знаком. Различается выводимая на МП-16

информация по интервалам между отдельными

группами цифр, а

также

по количеству цифр в числе.

 

 

 

Ниже приводятся примеры различной информации и ее вид

при печати на аппаратах СТА-2М и МП-16.

 

 

 

Инфо рмация

 

Печать на СТА-2М

Печать на МП-16

 

+

125 мм

-

+

0000000125 .

+

0000000125 ч о

 

10

3 14135

/

+

10314135.

+

10u3ui 14135

-

34254165211(5

? - 34254165211. •

- 3 4 2 5 4 1 6 5 2 П и

+

35°42*27;, 23Ь

)

+

0354227235 .

+ 0 3 5 u 4 2 u 2 7 l i 2 3 5

- 2 6 4 ° 3 5 j 5

С -

2643550000 .

-

264u35u50000

+

l

l h ^ " M s 3

Х +

1112150000»

+

1 l u i l 2 u l 50000

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

- 241 -

вследствие неисправностей работы самого печатающего устрой­ ства .

Влияние случайных сбоев в работе печатающего устройст­ ва устраняются двухкратной печатью результатов;иногда р е ­ зультаты выдаются на два различных печатающих устройства.

 

S 8.4.

ОТЛАДКА ПРОГРАММЫ. ПОНЯТИЕ ОБ ОТЛАДОЧНО*

 

 

ПРОГРАММЕ

 

 

Отладка программы является da в тяпающим этапом

решения

ьсдэчи с .юкчщыо ЭДИЛ, требующим от iрограммиста

большой

в :.;мбтельности при работе за пультом управления.

 

 

Отладка программы начинается после размещения програм­

мы

исходной

информации в ОЗУ ЗцЗМ.

 

 

л ля запуска

машины на выполнение программы в

большинст­

ве

универсальных ЗцЗМ необходимо занести в счетчик команд

начальный адрес прографи, то-есть номер ячейки памяти, в которой размещена первая команда программы, и нажать кноп­ ку "ПУСК".

3 СЭцБМ-1 для первоначального запуска машины на выпол­ нение программы, которая вместе с исходами данными вводит­ ся в ОЗУ, необходимо в конце программы п-чс-ат-ь следующую ин(|ормец:ж:

:

20025

'+

G01.

:

20001

/ + 10 О Ацдц.

 

 

Ю

 

Это означает, что в ячейку 2С025 будет занесен номер задачи 001, который присваивается всем задачам, программы решения которых вводятся в ОЗУ. В ячейке 20001 разместится команда безусловного перехода к первой команде программы

•^нач* После ввода в ОЗУ исходной информации, программы реше­

ния задачи и указанной выше информации СЭцВМ-1 вводит приз­ нак конца ввода Ю и автоматически начинает выполнять ком-

- 242 -

мутационную программу, размещенную в ДЗУ.

По коммутационной программе происходит опрос ячейки 20025 и при наличии в ней номера задачи 001 управления пе­

редается

ячейке 20001. Команда, размещенная в этой

ячейке,

передает

управление первой команде программы А н а ч ,

после

 

чего машина и начинает выполнение программы, размещенной

в

ОЗУ.

 

 

 

Для повторного запуска СЭЦВМ-1 на выполнение программы, уже введенной в ОЗУ, можно воспользоваться рассмотренными вы­ ше манипуляциями на ПУ./§ 8.2.Манипуляции на пульте управ­ ления СЭЦВМ-1, п . б/ .

Эти способы запуска СЭЦВМ-1 на выполнение программы и используются при проведении отладки программы.

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

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

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

Применяются различные методы отладки.

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

Конструктивные возможности СЭЦВМ'-l позволяют применять такой метод при отладке программ /См. § 8.2.Манипуляции на пульте управления, п . 7 . / .

Однако этот метод крайне неэффективен, так как приводит к большому расходу машинного нремени. Поэтому он чаще приме­ няется для проверки небольших участков программы.

- 243 -

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

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

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

Для осуществления контрольных остановов в некоторых, ма­ шинах предусмотрены специальные команды.

Останов машины в заданном месте программы может быть осу­ ществлен также с помощью специальных тумблеров на пульте уп­ равления машины. Такой останов по заданному с ПУ адресу пре­ дусмотрен конструкцией машины СЭЦВМ-1 /См. § 8.2.Манипуля­ ции на панели наладки и контроля ПУ, п . 2 / .

Основная отладка программы происходит на машине, но, учитывая, что машинное время дорого, а на отладку уходитзначительная часть времени, то отладку следует начинать до выхода на машину. Отладка программы до выхода на машину вклю­ чает в себя:--.'

-проигрывание программы на бумаге,

-проверку перфокарт или перфолент.

Перед выходом на машину составляется план отладки. В плане отладки должно быть предусмотрено:

- проверка правильности ввода информации ;

-остановы в некоторых контрольных точках с целью про­

верки

этапа вычислений;

-

выдача на печать или на индикацию той информации,ко-

- 244 -

торая бы явилась объективным показателем правильности реше­ ния задач.

В процессе отладки на машине рекомендуется:

не начинать отладки, если нет уверенности в правиль­ ности ввода информации в ОЗУ;

-при обнаружении ошибок не тратить времени на обнару­ жение причин их появления ;

-тщательно контролировать правильность действий, вы­

полняемых вручную за пультом в ходе

отладки;

 

-

не допускать исправлений вручную с пульта тех ошибок,

которые

были обнаружены при предыдущих отладках /такие

ис­

правления доллнк быть сделаны предварительно/;

 

г

при каждом выходе на машину

рекомендуется выводить

на печать или индикацию информацию,

которая свидетельство­

вала бы о правильности работы уже отлаженных блоков.

 

Проверку работы программы на ЭЦВМ следует начинать

с

самых внутренних блоков. Результаты работы блока сверяют с ручным расчетом. Если результаты совпадают, то блок счита­ ется отлаженным. 3 случае несовпадения в каком-либо или в

нескольких результатах

 

выдают на

печать или индика­

цию и сверяют исходные

данные,

а затем и

промежуточные вели­

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

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

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

- 245 -

щения ко всем другим внутренним блокам.

Пр%г проведении отладки как внутренних, так и внешних блоков ко гут встретиться следующие случаи:

-машина продолжает вычисления, не останавливаясь и совершая вычисления по некоторому замкнутому кругу /зацикли­ вание/ ;

-машина останавливается при переполнении разрядной

сетки машины внутри отлаживаемого блока;

-

машина останавливается при переполнении разрядной

сетки

или по программному останову вне блока.

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

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

мощи останова машины по адресу команды, вырабатывающей

сиг­

нал

ч , с высвечиванием содержимого

ячейки " 1р "

,

 

 

К зацикливанию машины при выполнении итерационного

цик­

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

£ .

Про­

верку правильности прохождения итерационного цикла можно

произвести в этом случае изменением

величины £

/заведомым

ее

увеличением/.

 

 

 

 

Случай останова при переполнении

раарядной сетки по-су-

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

С остановом машины вне отлаживаемого блока приходится сталкиваться тогда, когда имеются ошибки, приводящие к не-

- 246 -

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

При отладке программы на СЭЦВМ-1 в случае не предусмот­ ренного программой останова машины рекомендуется сразу же с помощью манипуляций на панели наладки и контроля высве­ тить содержимое СНК /3 8 . 2 . Манипуляции на панели наладки

и контроля ПУ,п.З/, что позволяет определить при выполнении какой команды произошел останов. После этого необходимо выб­ рать наиболее целесообразный метод отладки программы.

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

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

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

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

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

 

- 24?

-

ческих

операторов и линейные

участки программы / т е , кото­

рые не

имеют передач управления/.

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

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

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

$ 8.5. ПРОГРАММНЫЙ КОНТРОЛЬ РЕШЕНИЯ ЗАДАЧИ НА ЭЦВМ

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

- 248 -

Ошибки программы выявляются в процессе отладки програм­ мы, а для выявления ошибок машины используются особые методы, которые и будут рассмотрены в этом параграфе.

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

Случайные ошибки в работе машины называют сбоями. Систематические ошибка обнаруживаются и устраняются в

процессе проверки исправности машины.

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

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

Тестовые программы /теот-программы/ составляется таким образом, чтобы на специально подобранных примерах с различным

сочетанием операций

наиболее

полно охватить все узлы машины

в разных режимах лх работы.

 

При выполнении

машиной

тестовых программ получаемые ре­

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

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

 

 

- 249 -

Блеяние

случайных

ошибок /сбоев/, которые не могут быть

выявлены

ранее, устраняется различными программными мето-

,:ами, т . е .

исключается

самой программой.

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

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

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

Модификацией метода повторного счета является метод двойного-тройного счета. Сущность этого метода состоит в том, что сначала осуществляется контроль методом двойного счета. При несовпадении результатов первого и второго сче­ тов контролируемый участок программы исполняется третий раз.

Затем

результат третьего

счета

поочередно

сравнивается с

двумя

предыдущими. Если результат третьего

счета совпадает

с одним из первых двух,

то он

считается правильным, а вычис­

ления продолжаются. В противном случае вычисления прекращают­

ся. При решении

некоторых задач для контроля

вычислений мож­

но использовать

метод контрольных соотношений.

При решении

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

Пусть, например, в ходе решения задачи вычисляются си­ нус и косинус некоторого угла dl . 3 этом случае для кон­ троля результатов в программе можно предусмотреть проверку

Соседние файлы в папке книги из ГПНТБ