Понятие алгоритма. Свойства алгоритмов. Форма подачи алгоритма.


План-конспект урока № 5
Тема: Понятие алгоритма. Свойства алгоритмов. Форма подачи алгоритма.
Цель:
обучающая: ознакомить с общим понятием алгоритмов; привести примеры; ознакомить учащихся с правилами написания алгоритмов;
развивающая: развитие логического мышления, умственной активности учащихся, целеустремленности, памяти;
воспитательная: воспитание самостоятельности, трудолюбия, усидчивости, дисциплинированности, интереса к предмету.
Тип урока: комбинированный.
Ход урока
Организационный: (1-2 мин)
Актуализация опорных знаний: (5 мин).
Почему нужно записывать алгоритмы?
Нужны ли какие-то общие правила при записывании алгоритмов? Почему?
Приведите пример алгоритма.
Мотивация. Сообщение темы и цели урока (5 мин.)
Каждый из вас сталкивался с таким понятием, как алгоритм, в повседневной жизни, хотя даже и не догадывался об этом. Вот несколько примеров.
1. Девочки, готовя любое новое блюдо, как правило, ориентируются на кулинарную книгу, где последовательно расписано, что за чем нужно делать, т. е. они как раз ориентируются на последовательный алгоритм, который кто-то составил раньше.
2. Мальчики, помогая ремонтировать отцу машину, руководствуются теми последовательными рекомендациями, которые дает им отец, т. е. отец предо-ставляет последовательный алгоритм, который ведет к необходимому конечному результату.
Теперь мы можем сформулировать, что же такое алгоритм.
Изучение нового материала (20 мин.)
Алгоритм, (латинизиров. Algorithmus от имени среднеазиатского ученого математика IX в. Мухаммеда ибн Мусы аль–Хорезми) называет понятное и точное распоряжение выполнить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи. В этом определении используется понятие «исполнитель».
Алгоритм – это конечная последовательность команд (указаний), которая определяет, какие действия и в каком порядке нужно выполнить, чтобы достичь поставленной цели.
Что это означает? Под исполнителем алгоритма мы понимаем любое существо, способное выполнить алгоритм. Все зависит от того, какой цели мы стараемся достичь. Например, рытье ямы (исполнитель – человек или экскаватор), покупка некоторых товаров (один из членов семьи), решение математической задачи (ученик или компьютер) и т. п. Понятие алгоритма в информатике является фундаментальным, т. е. таким, которое не определяется через другие еще более простые понятия (для сравнения: в физике – понятие пространства и времени, в математике – точка).Понятие алгоритма принадлежит к фундаментальным понятиям математики. В качестве примера из математики можно привести известную теорему Пифагора: «Квадрат гипотенузы равняется сумме квадратов катетов». Руководствуясь только формулировкой этой теоремы, вы можете получить нужный результат, т. е. гипотенузу.
Свойства алгоритмов
Алгоритмы обладают следующими характерными свойствами:
Понятность
Чтобы исполнитель мог достичь поставленной цели, пользуясь алгоритмом, он должен уметь выполнять каждое его указание, т. е. понимать каждую из команд, из которых состоит алгоритм.
Например. Маме нужно купить в магазине продукты. Исполнителем этого алгоритма может быть кто-то из членов семьи: отец, сын, бабушка, маленькая дочь и т.п. Понятно, что отцу достаточно сказать, какие продукты нужно купить, и детализировать алгоритм не нужно. Сыну-подростку необходимо детальнее объяснить, в каких магазинах можно приобрести нужный товар, что можно ку¬ить вместо товара, которого нет в наличии, и т.п. Маленькой дочери алгоритм необходимо детализировать еще больше: где взять сумку, чтобы принести товар, сколько денег нужно вернуть, как пройти к магазину и как там вести себя (если ребенок впервые делает покупки).
Подобных примеров можно привести много. Вывод: понятность – это свойство алгоритма, который заключается в том, что каждый алгоритм должен состоять из команд, понятных исполнителю.
Определенность (однозначность)
Понятный алгоритм все-таки не должен содержать указаний, содержание которых может восприниматься неоднозначно. например, указания «почисти картофель», «посоли по вкусу», «убери в квартире» являются неоднозначными, т.к. в разных случаях могут привести к разным результатам. Кроме того, в алгоритмах недопустимы такие ситуации, когда после выполнения очередного распоряжения исполнителю непонятно, каким будет следующий шаг.
Например. Вас послали за каким-либо товаром в магазин, да еще и предупредили: «Без хлеба (сахара и т.п.) не возвращайся», а что делать, если товара нет в наличии? Так вот, точность – это свойство алгоритма, которое заключается в том, что алгоритм должен быть однозначно истолкован и на каждом этапе исполнитель должен знать, что ему делать дальше.
Дискретность
Как было сказано выше, алгоритм задает полную последовательность действий, которые необходимо выполнить для решения задачи. При этом для совершения действий их разбивают в определенной последовательности на простые шаги. совершить действия следующего этапа можно лишь после выполнения предыдущего действия. Эта разбивка алгоритма на отдельные элементарные действия (команды), которые легко выполняются исполнителем, и называется дискретностью.
Массовость
Очень важно, чтобы составленный алгоритм обеспечивал решение не одной отдельной задачи, а мог бы выполнять решение широкого класса задач такого типа. Например, алгоритм покупки какого-нибудь товара будет всегда одинаковым, независимо от покупаемого товара. Или, алгоритм стирки не зависит от белья, которое надо выстирать и т.п. Итак, под массовостью алгоритма имеется в виду возможность его применения для выполнения большого количества однотипных задач.
Результативность
Очевидно, что выполнение любого алгоритма должно завершаться получением результата. Т. е. ситуации, способные в некоторых случаях привести к так называемому «зацикливанию», должны быть исключены при составлении алгоритма. Например, рассмотрим такую ситуацию: роботу дали задание покинуть помещение (замкнутое пространство), не выполняя разрушительных действий. В этом случае, если роботу не дать указания открыть дверь (которая, возможно, закрыта), то попытки покинуть помещение могут оказаться безуспешными.
Способы описания алгоритма
Словесный.
Сегодня на уроке мы разобрали несколько алгоритмов, и все они подавались исполнителю с помощью словесного описания.
Подача в виде таблиц, формул, схем, рисунков и т.п.
Например, в детском саду вас знакомили с правилами поведения на дороге. И лучше всего дети, очевидно, воспринимают алгоритм, представленный в виде схематических рисунков. Глядя на них, ребенок, а потом и взрослый человек, вырабатывает ту линию поведения, которая ему предлагается. Аналогично можно привести примеры алгоритмов, записанных в виде условных обозначений на купленном товаре относительно его использования (заваривание чая, стирка белья и т.п.). В математике наличие формул позволяет решить задачу даже «без слов».
Запись с помощью блок-схемы.
Этот метод был предложен в информатике для наглядности представления алгоритма с помощью набора специальных блоков.

Учебные алгоритмические языки (псевдокоды).
Эти языки имеют четко определенный синтаксис и уже максимально приближены к машинному языку (языку программирования). Однако созданы они с учебной целью, поэтому имеют понятный для человека вид. Подобных псевдокодов сейчас огромное количество, начиная с таких графических сред, как «Алгоритмика», «Роботландия», «Лого-миры», «Ракушка» и т.п., и заканчивая текстовыми «национальными» реализациями алгоритмических языков, подобных языку Паскаля. Такие псевдокоды имеют программную реализацию и широко применяются на этапе обучения основам программирования.
Максимально приближен к компьютеру – это языки программирования.
Дело в том, что чаще всего на практике исполнителем созданного человеком алгоритма является машина, поэтому алгоритм должен составляться на языке, понятном для компьютера, т. е. на языке программирования.
Существуют четыре базовые структуры алгоритмов:
•линейные;
•разветвленные;
•циклические;
. Закрепление изученного материала (10 мин.)
Выполним несколько заданий
Вспомните алгоритм деления отрезка пополам. Что является аргументами этого алгоритма? Конечно, концы отрезка, а результатом точка отрезка, которая является его серединой. Есть ли тут промежуточные величины? Да, это засечки в разных полуплоскостях, границей которых является прямая, содержащая данный отрезок; прямая, проходящая через точки-засечки. Проанализируйте, все ли свойства соблюдаются для этого алгоритма?
В начальной школе, после того как вы выучили таблицу умножения, ваша первая учительница показывала фокус отгадывания задуманное числа, при этом вы задумывали число и выполняли, допустим, следующие действия:
умножить задуманное число на 5;
к произведению прибавить 8;
полученную сумму умножить на 2;
сообщить результат.
А уже по указанному результату учительница безошибочно отгадывала задуманное число. как же это ей удавалось? Обозначим задуманное число через х, тогда ваш результат расчетов у – значение выражения.
у = (5х + 8) * 2 или у = 10х + 16.А теперь составьте алгоритм угадывания задуманного числа. Проанализируйте этот алгоритм по свойствам.
Рассмотрим задачу. Генерал отправил на рынок денщика продать пару сапог, за которые назначил цену в 15 руб. денщик на рынке встретил двоих одноногих солдат-инвалидов, которым продал сапог по 7,5 руб. за каждый. Генерал, узнав о том, что покупатели – инвалиды, дал денщику 5 руб. и велел вернуть им по 2,5 руб. каждому. Денщик по дороге на рынок решил, что генерал не обеднеет и прикарманил 3 руб., а найдя солдат, вернул им по 1 руб.
А теперь посчитаем. Каждый из инвалидов заплатил за свой сапог по 7,5 — 1 = 6,5 (руб.), что в сумме составляет 13 руб. 3 руб. денщик взял себе. 13 + 3 = 16 (руб.) стоили сапоги. Откуда взялся лишний рубль?
А может, алгоритм вычислений неправильный? Какой же тогда правильный?
Итоги урока, домашнее задание (3 мин.)
Домашнее задание: Сформулируйте задачу о перевозке волка, козы и капусты. Запишите алгоритм с графической иллюстрацией (схематичными рисунками) решение этой задачи. Является ли этот алгоритм массовым? Дискретным? Конечным?