
Свойства алгоритмов.
Разделение информационного процесса в алгоритме на отдельные команды является важным свойством алгоритма и называется дискретностью.
Чтобы исполнитель мог выполнить преобразование объекта согласно алгоритму, он должен быть в состоянии понять и выполнить каждую команду. Это свойство алгоритма называется определенность (или точность).
Необходимо, чтобы алгоритм обеспечивал преобразование объекта из начального состояния в конечное за конечное число шагов. Такое свойство алгоритма называется конечностью (или результативностью).
Алгоритм должен быть применим для целого класса однотипных задач. Это свойство называется массовостью.
Исполнитель не должен вникать в смысл алгоритма, но при этом обязательно придет к заданному результату. Это свойство называется формальность.
Приведем пример алгоритма.
Игра Ваше (в игре участвуют двое).
Рассмотрим частный случай этой игры. Имеется 15 предметов. Соперники ходят по очереди, за каждый ход любой из играющих может взять 1, 2 или 3 предмета. Проигрывает тот, кто вынужден взять последний предмет.
Алгоритм выигрыша для первого игрока имеет следующий вид:
1) взять два предмета;
2) второй и последующий ходы делать так, чтобы количество предметов, взятых вместе с соперником за очередной ход, в сумме составляло 4.
Данный алгоритм приводит к выигрышу для 7, 11, 15, 19, ... предметов.
Человек, пользующийся данным алгоритмом, всегда будет выигрывать в этой игре. Ему совершенно необязательно знать, почему надо поступать именно так, а не иначе. Для успешной игры от него требуется только строго следовать алгоритму.
Таким образом, выполняя алгоритм, исполнитель может не вникать в смысл того, что он делает, и вместе с тем получать нужный результат. В таком случае говорят, что исполнитель действует формально, т. е. отвлекается от содержания поставленной задачи и только строго выполняет некоторые правила, инструкции.
Следовательно возможна автоматизация деятельности алгоритма (Классы алгоритмов.
Алгоритмы могут представлять процессы преобразования самых разных объектов.
Широкое распространение получили вычислительные алгоритмы, которые описываются преобразование числовых данных. Эти алгоритмы работают с простыми данными, но процесс вычислений может быть долгим сложным.
Информационные алгоритмы обычно представляют собой набор простых преобразований, но обрабатывают большой объем информации.
Управляющие алгоритмы получают информацию из внешних источников и в нужный момент выдают управляющий сигнал.
Само слово алгоритм происходит от algorithmi – латинской формы написания имени выдающего математика IX в. аль-Хорезми, который сформулировал правила выполнения арифметических операций.
Процесс разбиения решения задачи на все более мелкие шаги (то есть процесс создания алгоритма) называется алгоритмизацией.
Алгоритм позволяет формализовать выполнение информационного процесса. Если исполнителем является человек, то он может выполнить алгоритм формально, не вникая в содержание постановленной задачи, а только строго выполняя последовательность действий, предусмотренную алгоритмом.)
Билет № 12
Цикл. В алгоритмические структуры цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.
Циклические алгоритмические структуры бывают двух типов:
— циклы со счетчиком, в которых тело цикла выполняется определенное количество раз (рис. 5);
— циклы с условием, в которых тело цикла выполняется до тех пор, пока выполняется условие.
Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклом со счетчиком.
Однако часто бывает необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от выполнения некоторого условия.
выхода
из цикла можно поставить в начале, перед
телом цикла (рис. 6, а), или в конце, после
тела цикла
Билет № 13
1. Исполнителя можно представить себе как некоторое устройство управления, соединённое с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. А инструменты производят действия, выполняя команды управляющего устройства. Если рассматривать человека, как исполнителя алгоритмов, то мозг – его управляющее устройство, а инструменты – руки, ноги, глаза, …. У роботов-манипуляторов, станков с программным управлением и ЭВМ управляющее устройство – процессор, что касается набора инструментов, то он зависит от того, для решения каких задач предназначен тот или иной исполнитель.
Алгоритм может быть записан на естественном языке, изображен в виде блок-схемы, записан с соблюдением строгих правил синтаксиса на алгоритмическом языке или закодирован на языке программирования. Для того чтобы компьютер мог его выполнить, алгоритм должен быть записан на понятном для компьютера языке.
Билет № 14
Рассмотрим процесс решения задачи на конкретном примере:
Тело брошено вертикально вверх с начальной скоростью с некоторой высоты. Определить его местоположение и скорость в заданный момент времени.
На первом этапе обычно строится описательная информационная модель объекта или процесса. В нашем случае с использованием физических понятий создается идеализированная модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:
1) тело мало по сравнению с Землей, поэтому его можно считать материальной точкой; 2) скорость бросания тела мала, поэтому: — ускорение свободного падения считать постоянной величиной; — сопротивлением воздуха можно пренебречь.
На втором этапе создается формализованная модель, т. е. описательная информационная модель записывается с помощью какого-либо формального языка.
Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (V0), начальной высоте (Н0) и ускорении свободного падения (g = 9,8 м/с2 ) зависимость скорости (V) и высоты (Н) от времени (t) можно описать следующими математическими формулами: V=V0-gt, Y = H0 + Vt-gt2/2.
На третьем этапе необходимо формализованную информационную модель преобразовать в компьютерную на понятном для компьютера языке. Существуют два принципиально различных пути построения компьютерной модели: — создание алгоритма решения задачи и его кодирование на одном из языков программирования; — формирование компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и т. д.).
Для реализации первого пути надо построить алгоритм определения координаты тела в определенный момент времени и закодировать его на одном из языков программирования, например на языке Visual Basic.
Второй путь требует создания компьютерной модели, которую можно исследовать в электронных таблицах. Для этого следует представить математическую модель в форме таблицы функции зависимости координаты от времени (таблицы функции , H = H0 + Vt-gt2/2 ) и таблицы зависимости скорости тела от времени (V = V0 - g • t).
Четвертый этап исследования информационной модели состоит в проведении компьютерного эксперимента. Если компьютерная модель существует в виде программы на одном из языков программирования, ее нужно запустить на выполнение и получить результаты. Если компьютерная модель исследуется в приложении, например в электронных таблицах, можно провести сортировку или поиск данных, построить диаграмму или график и т. д.
На пятом этапе выполняется анализ полученных результатов и при необходимости корректировка исследуемой модели. Например, в нашей модели необходимо учесть, что не имеет физического смысла вычисление координаты тела после его падения на поверхность Земли.
Таким образом, технология решения задач с помощью компьютера состоит из следующих этапов: построение описательной модели — формализация — построение компьютерной модели — компьютерный эксперимент — анализ результатов и корректировка модели.