Работа автомата по инструкции не таит в себе, конечно, ничего сверхъестественного или непостижимого. "Умеет" же аппаратура АТС безошибочно выполнять команды, которые мы посылаем ей набором телефонного номера. Нужно только, чтобы каждая команда была выражена на языке, доступном "пониманию" машины, например в виде определенной последовательности импульсов электрического тока.
Когда требуется длительная работа аппаратуры в соответствии с инструкцией, включающей множество команд, эту инструкцию следует тем или иным способом записать. Для хранения информации, выраженной электрическими импульсами, можно использовать, например, магнитофон: комбинации электрических импульсов могут быть зафиксированы путем намагничивания участков магнитофонной ленты точно таким же способом, как это делают в звукозаписи. Впоследствии записанные команды по мере их воспроизведения будут управлять действиями автоматической аппаратуры. Записанную тем или иным способом инструкцию, которой должен "руководствоваться" автомат, принято называть программой.
На таких же магнитофонных лентах может быть записана не только инструкция, но и таблица исходных данных: ведь цифры, с которыми оперирует электронная вычислительная машина, тоже изображаются электрическими импульсами.
Первоначальный ввод в вычислительную машину исходных данных, а также команд программы может осуществляться с помощью специальной клавиатуры, вроде той, которая используется в телеграфных аппаратах: нажал клавишу - замкнулись контакты, и по цепи побежала определенная комбинация импульсов электрического тока (в телеграфии она приводит в действие буквопечатающий аппарат, находящийся в другом городе, а в вычислительной машине намагничивает ленту магнитофона).
Электрические импульсы, выражающие окончательный результат вычислений, могут воздействовать на электромагниты печатающего аппарата (наподобие телеграфного), в результате чего мы получаем интересующие нас данные в форме обычной телеграммы.
Как видим, в современной технике нетрудно найти прообразы всех устройств, которые необходимы для полной автоматизации вычислительного процесса. Они нуждаются только в дальнейшем усовершенствовании для повышения их быстродействия и надежности.
Напомним, что осмысливание и понимание выполняемых расчетов в обязанности вычислителя не входят: это дело "заказчика", который задумал расчет и воплотил свой замысел в инструкцию. Но, конечно, на практике внимательный и квалифицированный вычислитель не бывает вполне равнодушным к тому, что он делает; в частности, он может заметить и даже исправить грубые ошибки в инструкции, восполнить случайные пробелы и т. д.
От машины (в отличие от человека) при решении ею задач нельзя, разумеется, ожидать никакой "сообразительности", основанной на понимании существа дела. Поэтому инструкция для машины должна быть составлена в такой форме, которая заранее исключала бы всякую двусмысленность, сомнения и необходимость руководствоваться здравым смыслом. Такого рода инструкция - свод четко сформулированных правил, применимых к достаточно широкому классу задач и всегда приводящих к определенному результату, в математике называется алгоритмом. Мы все изучали в средней школе алгоритм деления "уголком", алгоритм извлечения квадратного корня из многозначного числа и т. д. Действие любой современной вычислительной машины состоит в том, что она с педантичной точностью и аккуратностью выполняет последовательные предписания того или иного алгоритма, например алгоритма решения дифференциального уравнения или алгоритма перевода текста с английского языка на русский.
Категорический характер предписаний, которые составляют алгоритм, вовсе не означает, что вся последовательность действий машины во всех деталях заранее известна составителю данного алгоритма. Ведь категорическое предписание может иметь и такую форму: "Если в результате деления получится число меньше тысячи, увеличить его в два раза, а если получится частное не меньше тысячи - прибавить к нему восемьдесят три". Что будет делать машина фактически - умножать на 2 или прибавлять 83, этого составитель алгоритма заранее не знает, так как ему не известно, какое получится частное.
Про такой алгоритм говорят, что он предусматривает условный переход к выполнению той или иной последовательности операций в зависимости от результатов уже выполненных действий. Как мы увидим в дальнейшем, такие условные переходы играют огромную роль в работе электронных вычислительных машин, в значительной степени определяя их гибкость и возможность применения к решению весьма сложных математических и логических задач.
2i.SU ©® 2015