Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253), страница 17
Текст из файла (страница 17)
Совокупность7.5. Алгоритмы и программы91команд, которые могут быть выполнены исполнителем, называетсясистемой команд исполнителя.Каждый алгоритм строится в расчете на некоторого исполнителя. Для того чтобы исполнитель мог решить задачу по заданномуалгоритму, необходимо, чтобы он был в состоянии понять и выполнить каждое действие, предписываемое командами алгоритма. Каждая команда алгоритма должна определять однозначное действиеисполнителя.
Такое свойство алгоритмов называется определенностью (или точностью) алгоритма.Алгоритм, составленный для конкретного исполнителя, долженвключать только те команды, которые входят в его систему команд.Это свойство алгоритма называется понятностью. Алгоритм не должен быть рассчитан на принятие каких-либо самостоятельных решений исполнителем, не предусмотренных составлением алгоритма.Еще одно важное требование, предъявляемое к алгоритмам, —результативность (или конечность) алгоритма. Оно означает, что исполнение алгоритма должно закончиться за конечное число шагов.Поскольку разработка алгоритмов — процесс творческий, требующий умственных усилий и затрат времени, предпочтительноразрабатывать алгоритмы, обеспечивающие решения всего классазадач данного типа.
Например, если составляется алгоритм решениякубического уравнения ах1 + Ьхг + сх + d = 0, то он должен быть вариативен, т. е. обеспечивать возможность решения для любых допустимых исходных значений коэффициентов а, Ь, с, d. Про такойалгоритм говорят, что он удовлетворяет требованию массовости.Свойство массовости не является необходимым свойством алгоритма. Оно скорее определяет качество алгоритма; в то же время свойства точности, понятности и конечности являются необходимыми(иначе это не алгоритм).Запись алгоритмов в виде блок-схемАлгоритмы можно записывать по-разному. Форма записи, состав и количество операций алгоритма зависят от того, кто будетисполнителем этого алгоритма.
Если задача решается с помощьюЭВМ, алгоритм решения задачи должен быть записан в понятнойдля машины форме, т. е. в виде программы.Схема алгоритма — графическое представление алгоритма, дополняемое элементами словесной записи. Каждый пункт алгоритма отображается на схеме некоторой геометрической фигурой, или блоком.При этом правило выполнения схем алгоритмов регламентирует ГОСТ19.002—80 «Единая система программной документации» (табл. 1.34).'92Глава 1. Вычислительные*Hp'ufiop1>?и устройства...Таблица 1 34 Основные элементы блок-схем№СимволНаименованиеСодержаниеРазмерыпо ГОСТ 19 003-80(ЕСПД) а= 10,15,20мм,А=1,5в123а =Ь0 -СОаБлок вычисленийВыбор направления выполненияЛогический блокБлоки ввода-вывода данныхаВычислительные действия илипоследовательность действийалгоритма в зависимости от некоторого условия1 Общие обозначения ввода(вывода) данных (вне зависимости от физического носителя)2 Вывод данных, носителем которых является документ, ь ,PvN* .l/4o//I"br= a/44CD560Начало (конец)Начало или конец алгоритма,вход или выход в программуXX^[4^]_jfbПроцесс пользователя (подпрограмма)Вычисление го стандартнойпрограмме или подпрограммеБлокмодификацииФункция выполняет действияизменяющие пункты (например,заголовок цикла) алгоритма(,a/2„I''ab*7ОСоединительУказание связи прерваннымилиниями между потоками информации в пределах одноголистаd=a/2a/28\уМежстраничныесоединенияУказание связи между информацией на разных листах0 6лo,2ayXx -.
'937.5. Алгоритмы и программыБлоки на схемах соединяются линиями потоков информацииОсновное направление потока информации идет сверху вниз и слева направо (стрелки могут не указываться), снизу вверх и справа налево — стрелка обязательна.
Количество входящих линий для блокане ограничено Выходящих линий — одна, за исключением логического блока.Базовые структуры алгоритмовЭто определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательных действийК основным структурам относятся следующие — линейные(рис. 1.20, а), разветвляющиеся (рис. 1.20, б), циклические(рис.
1.20, в).НетДа1\^^Оператор"!Оператор2^...гаI'Параметрьпцикла1бРис. 1.20. Базовые структуры алгоритмов и программЛинейными называются алгоритмы, в которых действия осуществляются последовательно друг за другом Стандартная блок-схемалинейного алгоритма приводится на рис 1 20, а (вычисление суммыдвух чисел — А и В).Разветвляющимся называется алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи в зависимости от выполнения условий В отличие от линейных алгоритмов,в которых команды выполняются последовательно одна за другой, вразветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (серий).В качестве условия в разветвляющемся алгоритме может бытьиспользовано любое понятное исполнителю утверждение, котороеможет соблюдаться (быть истинно) или не соблюдаться (быть ложно) Такое утверждение может быть выражено как словами, так и94Глава 1.
Вычислительные приборы и устройства...формулой. Таким образом, команда ветвления состоит из условия идвух последовательностей команд.Примером может являться разветвляющийся алгоритм, изображенный в виде блок-схемы (рис. 1.20, б). Аргументами этого алгоритма являются две переменные А, В, а результатом — переменнаяX. Если условие А > В истинно, то выполняется операция Х:= А х В,в противном случае выполняется X \= А + В. В результате печатаетсято значение переменной X, которое она получает в результате выполнения одной из серий команд.Циклическим называется алгоритм, в котором некоторая последовательность операций (тело цикла) выполняется многократно.Однако «многократно» не означает «до бесконечности».
Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности —получения результата за конечное число шагов.Перед операцией цикла осуществляется операция начальногоприсвоения значений тем переменным, которые используются втеле цикла. В цикл входят в качестве базовых следующие структуры:блок проверки условия и тело цикла. Если тело цикла расположенопосле проверки условий Р (цикл с предусловием), то может случиться, что при определенных условиях блок тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемыйпредусловием, называется цикл «пока» (здесь условие — это условиена продолжение цикла).Возможен другой случай, когда тело цикла выполняется по крайней мере 1 раз и будет повторятся до тех пор, пока не станет истинным условие.
Такая организация цикла, когда его тело расположеноперед проверкой условия, носит название цикла с постусловием, илицикла «до». Истинность условия в этом случае — условие окончанияцикла. Отметим, что возможна ситуация с постусловием и при организации цикла «пока». Итак, цикл «до» завершается, когда условиестановится истинным, а цикл «пока» — когда становился ложным.Современные языки программирования имеют достаточный набороператоров, реализующих как цикл «пока», так и цикл «до».Рассмотрим пример алгоритма вычисления факториала, изображенный на рис. 1.21 (с циклом «пока»). Переменная N получаетзначение числа, факториал которого вычисляется.
Переменной N1,которая в результате выполнения алгоритма должна получить значение факториала, присваивается первоначальное значение 1. Переменной К также присваивается значение 1. Цикл будет выполняться, пока справедливо условие N > К. Тело цикла состоит из двухопераций: N1 = N1 х Ки К= К+ 1.951.5. Алгоритмы и программы7/Ввод А, В,Ввод 11Ввод N11Да ^<"С^\^НетХ:=А*ВЛ^^Л^>''/' Вывод X 1х ~А*В^^^К:= 1; Л1 •= I^^-^X =А + Б\( Конец 1/Вывод XIКонецa6вРис.
1.21. Примеры структур алгоритмов:а — линейный алгоритм; б — алгоритм с ветвлением; в — алгоритм с цикломЦиклические алгоритмы, в которых тело цикла выполняется заданное число раз, реализуются с помощью цикла со счетчиком.Цикл со счетчиком реализуется с помощью команды повторения.Процесс решения сложной задачи довольно часто сводится крешению нескольких более простых подзадач.
Соответственно приразработке сложного алгоритма он может разбиваться на отдельные алгоритмы, которые называются вспомогательными. Каждыйтакой вспомогательный алгоритм описывает решение какой-либоподзадачи.Процесс построения алгоритма методом последовательной детализации состоит в следующем. Сначала алгоритм формулируется в«крупных» блоках (командах), которые могут быть непонятны исполнителю (не входят в его систему команд) и записываются каквызовы вспомогательных алгоритмов. Затем происходит детализация, и все вспомогательные алгоритмы подробно расписываются сиспользованием команд, понятных исполнителю.Контрольные вопросы1.2.3.4.Что такое поколения ЭВМ?Охарактеризуйте ЭВМ по областям применения.Дайте классификацию информации.Каковы преимущества цифровой информации по отношению к аналоговой?96Глава 1.