Тема урока: «Алгоритм. Основные понятия алгоритма».
Тип урока: изучение нового учебного материала.
Форма урока: лекция с применением информационных технологий обучения.
Цель урока: ознакомить учащихся с базовым понятием информатики — алгоритмом.
Оборудование к уроку: наглядные пособия (Презентация №1), карточки к практическому занятию, набор камешков к практическому занятию, персональные компьютеры, видеопроектор, экран.
Образовательные задачи: создать условия для формирования первичного представления об алгоритмах, как управляющей информации; помочь учащимся усвоить понятие алгоритма, способы задания, свойства алгоритмов, виды алгоритмов, исполнители алгоритмов, команда, система команд исполнителя; показать, как надо строить простые алгоритмы.
Развивающие задачи: развитие логического и алгоритмического мышления школьников через установление причинно-следственных связей. Формирование умения в большом материале выделить главное.
Воспитательные задачи: воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости. Формирование программированного мышления, системы взглядов на решение предметных задач.
Требования к знаниям и умениям: Знать понятие алгоритма, уметь составлять алгоритм по предложенной задаче.
План урока
-
Организационный момент — 1 мин.
-
Актуализация знаний — 5 мин.
-
Теоретическая часть — 15 мин.
-
Практическая часть — 15 мин.
-
Домашнее задание — 2 мин.
-
Вопросы учеников — 5 мин.
-
Итог урока — 2 мин.
Ход урока
I. Организационный момент (1 мин).
Организация начала урока, объявление темы и цели урока (слайд №1).
II. Актуализация знаний (5 мин).
На данном этапе проводится мотивация учащихся, вызывается интерес учащихся к теме урока. Устанавливается актуальность изучаемой темы.
Понятие алгоритма так же фундаментально для информатики, как и понятие информации. Поэтому в нем очень важно как следует разобраться. Давайте попытаемся ответить на несколько вопросов (слайд №2):
-
На каких уроках вы встречались со словом «алгоритм»?
-
Где в быту вы встречались со словом «алгоритм»?
-
Приведите синонимы слова «алгоритм»?
-
Попытайтесь дать свое определение понятия «алгоритм».
-
Можете ли вы сказать что такое «исполнитель»?
Для решения большинства задач существует множество готовых программ. Но для того, чтобы лучше понимать все происходящее с компьютером и уверенно принимать правильные решения, рядовому пользователю необходимо обладать определенной компьютерной грамотностью.
III. Теоретическая часть (15 мин).
На данном этапе учащимся даются краткие исторические сведения для формирования фундаментальной основы изучаемой темы. Происходит изучение нового материала.
Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово «алгоритм» возникло в Европе от имени аль-Хорезми после перевода на латынь книги этого математика. В наше время «алгоритм» понимается шире, не ограничиваясь только арифметическими вычислениями.
Пожалуйста, помогите мне сформулировать определение.
(слайд №3)Алгоритм — это конечная последовательность строго определенных действий, приводящих к однозначному решению поставленной задачи.
Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач и т.д.) Обычно, мы выполняем привычные действия, не задумываясь, механически. Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения: (слайд №4)
-
Достать ключ из кармана.
-
Вставить ключ в замочную скважину.
-
Повернуть ключ два раза против часовой стрелки.
-
Вынуть ключ.
Вы, наверное, никогда не задумывались над тем, какое количество алгоритмов вам известно. Жизненный опыт человека растет с увеличением числа освоенных им алгоритмов. Например, чтобы ребенок научился покупать в магазине хлеб, ему нужно сначала рассказать (а лучше показать), как это делается. Освоив «алгоритм покупки хлеба», он в дальнейшем будет успешно выполнять эту работу.
(слайд №5)Если вы внимательно оглянитесь вокруг, то обнаружите множество алгоритмов, которые мы с вами постоянно выполняем. Мир алгоритмов очень разнообразен (приведите примеры). Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.
Свойства алгоритмов:
-
(слайд №6)Массовость — алгоритм должен обеспечивать решение широкого класса задач данного типа, а не частного случая; более того, при составлении алгоритма нужно стремиться к облегчению его адаптации для различных исполнителей. Например, алгоритм решения квадратного уравнения, должен находить корни при любых коэффициентах и должен быть так реализован, чтобы его смогли выполнить дети разных стран (т. е. разные исполнители).
-
(слайд №7)Понятность — алгоритм только тогда будет правильным, когда перечень команд, из которых он состоит, будет понятен исполнителю. Если конкретный исполнитель будет не в состоянии выполнить какую-то из команд, то такой алгоритм бесполезен. Например, представим себе дрессированную собаку, которая может выполнить команды: «Сидеть», «Лежать», «К ноге». Попытайтесь приказать ей «Фас», наверняка на это она лишь мирно помашет хвостиком, но команды не выполнит, ведь она её не знает.
-
(слайд №8)Дискретность — возможность разбить алгоритм на несколько отдельных шагов, идущих друг за другом; при этом не допускается пропуск шагов и обеспечивается переход к следующему шагу только при выполнении предыдущего. Например, алгоритм подключения флэшки к компьютеру можно разбить на шаги: а) взять флэшку в руки; б) снять защитный колпачок; в) положить колпачок на стол; г) вставить флешку в USB-порт компьютера. Очевидно, что эти шаги нельзя ни пропустить, ни поменять местами.
-
(слайд №9)Определенность или детерминированность — запись алгоритма должна быть полной и четкой, чтобы не было потребности домысливать. Нельзя, чтобы при одних и тех же условиях (входных данных) алгоритм выдавал разные результаты. Например, при решении одного и того же линейного уравнения всегда должен быть один и тот же корень, а при наличии определённых генетических признаков, всегда должно выдаваться одно растение (или, хотя бы, растение в пределах одного семейства).
-
(слайд №10)Результативность — исполнение алгоритма всегда должно иметь результат. И этот результат должен быть получен за конечное число шагов. Например, в процессе поиска определённой информации в сети интернет (что тоже осуществляется по алгоритму), мы всегда получим результат поиска: а) информация о объекте поиска; б) отсутствие данной информации (но, тем не менее, это тоже результат, который говорит о том, что такой информации в интернете нет и вам придётся воспользоваться другими источниками поиска).
Главная особенность любого алгоритма — формальное исполнение, позволяющее выполнить заданные действия (команды) не только человеку, но и различным техническим устройствам. (слайд №11) Проще говоря, алгоритм позволяет нам отдавать последовательность приказов машине для выполнения определённой операции или серии операций.
(слайд №12) Исполнитель — объект, который выполняет алгоритм.
Идеальными исполнителями являются машины, роботы, компьютеры и т. д.
Всякий алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. Для того, чтобы алгоритм был выполним, нельзя включать в него команды, которые исполнитель не в состоянии выполнить. Нельзя повару поручать работу токаря, какая бы подробная инструкция ему не давалась. У каждого исполнителя имеется свой перечень команд, которые он может исполнить. Такой перечень называется системой команд исполнителя алгоритмов (СКИ).
Именно эта система команд определяет поведение исполнителя и исключительно на неё мы будем опираться при составлении алгоритмов.
(слайд №13)Компьютер – автоматический исполнитель алгоритмов.
Алгоритм, составленный с помощью системы команд понятных компьютеру, называется компьютерной программой, или просто программой.
(слайд №14)Алгоритм может быть задан:
-
Словесно — описание алгоритма словами и предложениями (для нас это самый естественный способ задания, но для машины-исполнителя самый непонятный).
-
Таблично — описание алгоритма в форме таблиц и расчетных формул (очень удобный способ записи для инженеров-разработчиков, учёных, специалистов, но, опять же, для нас, как неспециалистов, и для машины — тоже не очень удобный. Хотя, например, он используется в особых математических пакетах вроде MatchLab).
-
Графически — описание алгоритма с помощью геометрических фигур, называемых блоками (Данный вид описания называется языком блок-схем, именно его мы и будем использовать).
Вопросы (слайд №15).
-
Что такое алгоритм? Приведите примеры алгоритмов.
-
Сформулируйте алгоритм набора простого текста в любом текстовом редакторе.
-
Какие свойства алгоритмов вы знаете?
-
Какие способы записи алгоритмов вы знаете?
-
Что такое исполнитель алгоритмов?
-
Что такое программа?
IV. Практическая часть (15 мин).
Решение задач.
-
Составить словесный алгоритм построения биссектрисы угла с помощью циркуля и линейки.
-
(слайд №16, приложение 1) Попробуйте заполнить таблицу (прием «Блиц-практика» хорош в слабых классах):
Для более подготовленного класса или группы учащихся можно предложить следующую «Блиц-практическую» игру, позже к ней могут присоединиться и другие ученики класса. (Это активная форма работы, тренирует учеников кратко и четко выражать свои мысли, происходит смена вида деятельности, продолжается развиваться умение работать в парах.)
Поиск выигрышной тактики, а, следовательно, и алгоритма несложной игры — интересная и полезная задача. Рассмотрим одну из таких игр, которая называется игрой Баше (слайд №17).
Играют двое. Перед ними 21 предмет, допустим, камни (также может быть 11, 16, 26 и т.д.) Игроки берут камни по очереди. За один ход можно взять 1-2-3-4 камня. Проигрывает тот, кто забирает последний камень.
Имеется выигрышная тактика для игрока, берущего камни вторым. Она заключается в том, чтобы брать такое количество камней, которое дополняет число камней, взятых соперником на предыдущем ходе, до пяти. Этот алгоритм можно описать в виде последовательности команд:
-
Предоставить ход сопернику.
-
Взять столько камней, чтобы в сумме с предыдущим ходом соперника получилось 5.
-
Если остался один камень, то объявить о своем выигрыше, иначе вернуться к выполнению команды 1.
Игрок, строго следующий этому алгоритму, будет всегда выигрывать, даже если он не понимает, почему так происходит.
V. Домашнее задание (2 мин) (слайд №18).
-
В текстовом редакторе Writer наберите последовательность букв «АЛТОРИГМ». Эта последовательность вам ничего не напоминает? Составьте алгоритм получения слова «АЛГОРИТМ» из данной последовательности. (Шаг 1. Поставить курсор перед буквой «Т». Шаг 2. Нажать клавшу Del на клавиатуре. Шаг 3. Нажать клавишу «Г». и т. д.).
-
Имеются два кувшина емкостью 3 л и 8 л. Напишите алгоритм, выполняя который можно набрать из реки 7 л воды.
VI. Вопросы учеников (5 мин).
Ответы на вопросы учащихся.
VII. Итог урока (2 мин).
Подведение итога урока. Выставление оценок.
(слайд №19) На уроке мы познакомились с понятием «алгоритм», какими свойствами он обладает и как его можно записать. При создании алгоритмов необходимо придерживаться основных требований, базирующихся на свойствах алгоритма и которые нужно неукоснительно соблюдать.
УРОК 1.2. ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ.
Раздел программы: «Алгоритмы и исполнители».
Тема урока: «Основные алгоритмические конструкции».
Тип урока: изучение нового учебного материала, закрепление пройденного.
Форма урока: лекция с применением информационных технологий обучения.
Оборудование к уроку: наглядные пособия (Презентация №2, приложения), карточки к практическому занятию, персональные компьютеры, видеопроектор, экран.
Цель урока: закрепление и расширение понятия «алгоритм» посредством изучения основных алгоритмических конструкций.
Образовательные задачи:
-
-
формирование алгоритмического подхода к решению задач;
-
расширить и углубить представления об алгоритмах, связать это понятие с программированием, как инструментом разработчика;
-
формирование понятий об алгоритмических структурах;
-
научиться реализовывать основные алгоритмические конструкции с помощью блок-схем;
-
формирование умения составлять блок-схемы по примеру;
-
формирование умения восстанавливать пример по блок-схеме.
Развивающие задачи:
-
-
расширение кругозора, внимания, творческого воображения, математического, логического и образного мышления;
-
развитие умения анализировать, делать выводы;
-
пропедевтика применения персонального компьютера как инструмента практической деятельности.
Воспитательные задачи:
Требования к знаниям и умениям: Знать понятия алгоритма, исполнителя, системы команд исполнителя, программы, уметь составлять алгоритм по предложенной задаче, знать свойства алгоритмов, способы записи алгоритмов.
План урока
-
Организационный момент — 1 мин.
-
Проверка домашнего задания, повторение прошлого материала — 5 мин.
-
Теоретическая часть — 15 мин.
-
Практическая часть — 15 мин.
-
Домашнее задание — 2 мин.
-
Вопросы учеников, подведение итогов урока — 7 мин.
Ход урока
I. Организационный момент (1 мин).
Организация начала урока, объявление темы и цели урока.
II. Проверка домашнего задания, повторение прошлого материала (5 мин).
III. Теоретическая часть (15 мин).
Если алгоритм помогает нам решать самые разнообразные задачи, то, наверное, и алгоритмы бывают разные.
Как вы думаете, какой будет тема нашего сегодняшнего урока?
Сегодня на уроке мы познакомимся с видами алгоритмов и научимся их графически изображать.
(слайд №1)Итак, тема нашего урока «Основные алгоритмические конструкции».
А теперь возьмите карточку, выполните в тетради предложенный алгоритм и ответьте на вопросы. (Приложение 2)
Задание 1
-
Напиши слово МОРЕ.
-
Поменяй местами первую и последнюю буквы в слове.
-
Убери 2 первых буквы.
-
Припиши слева букву О.
-
Припиши слева букву Т.
-
Припиши слева букву Ш.
ЧТО БЫВАЕТ В МОРЕ?
Задание 2
-
Напиши слово ТОРТ.
-
Убери третью букву.
-
Замени последнюю букву на К.
-
Прочитай слово справа налево.
КТО СЪЕЛ ТОРТ?
Задание 3
-
Запиши имя СЕРЁЖА.
-
Замени первую букву на букву Л.
-
Убери третью букву.
-
Убери вторую букву.
-
Убери третью букву.
-
Вставь третьей буквой букву Ш.
КТО БРАТ СЕРЁЖИ?
-
Что у вас получилось?
-
Кто съел торт?
-
Что бывает в море?
-
Кто брат Сережи?
Алгоритм задания на карточке представлен в словесной форме. Алгоритм можно изобразить графически. Как вы уже знаете, для этого используют блок-схему (Слайд 2).
Каждая команда алгоритма записывается в блок, блоки соединены стрелками, стрелки обозначают последовательность действий.
Давайте запишем определение блок-схемы. (Слайд 3)
Основные блоки, которые используются в блок-схемах следующие. (Слайд 2)
Перенесите их себе в тетрадь.
А теперь давайте вместе попробуем выделить виды алгоритмов и дать им названия.
Всего выделяют 3 вида алгоритмов.
Итак, первый вид алгоритмов самый простой. (Слайд 4)
Определение записывается в тетрадь. Давайте попробуем решить тренинг-задачу (Слайд 5).
Следующий вид алгоритмов хорошо описывает строчка: «Пойдёт направо — песнь заводит, налево — сказку говорит…» (Слайд 6)
Чтобы вам было легче, давайте поиграем. Я буду называть предложение, а вы попытаетесь отгадать соответствующую ему пословицу.
-
Если два дела делать, то ничего не получится (За двумя зайцами погонишься — ни одного не поймаешь).
-
Если делать дело не торопясь, то быстрее его закончишь (Тише едешь — дальше будешь).
-
Если не будешь трудиться, то не сваришь ухи (Без труда не вынешь рыбку из пруда).
Чем похожи предложения, которые я читал?
В них проверяется условие, а затем выполняется действие.
Как мы назовем алгоритмы, содержащие условие? (Слайд 7) Записать определение в тетрадь. Давайте попробуем решить тренинг-задачу (Слайд 8).
Послушайте примеры для третьего типа алгоритмов.
Что общего в этих примерах?
Как мы назовем алгоритмы с многократным повторением какого-то действия? (Слайды 9, 10). Запишите определение циклического алгоритма в тетрадь. Давайте попробуем решить тренинг-задачу (Слайд 11).
Сколько видов алгоритмов вы теперь знаете?
Перечислите их. Что такое блок-схема?
IV. Практическая часть (15 мин).
В папке своего класса откройте папку «Алгоритмы». До конца урока вам нужно выполнить 3 задания (Приложения 3, 4, 5), проверить правильность выполнения, сравнив с эталоном.
Баллы за каждое выполненное задание вы вносите в карточку самооценки (Приложение 6). Результатом вашей работы на уроке будет оценка, которую вы себе поставите.
Самоконтроль с проверкой по эталону
Учитель комментирует каждое задание, ребята работают, затем сравнивают с эталоном (Слайды 12, 13, 14) и заполняют карточку самооценки.
После выполнения работы карточки самооценки сдаются учителю.
V. Домашнее задание (2 мин).
Ребята записывают домашнее задание (Слайд 15) в тетрадь.
VI. Вопросы учеников, подведение итогов урока (7 мин).
-
Что нового вы сегодня узнали?
-
Что понравилось на уроке?
-
Что не понравилось?
-
Какие у вас возникали затруднения в процессе выполнения работы?
Если затруднения возникли, проговорить способы их разрешения.
УРОК 1.3. ЛИНЕЙНЫЕ, РАЗВЕТВЛЯЮЩИЙСЯ И ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ В БЛОК-СХЕМАХ.
Раздел программы: «Алгоритмы и исполнители».
Тема урока: «Линейные, разветвляющийся и циклические алгоритмы в блок-схемах».
Тип урока: Изучение нового материала. Закрепление и углубление пройденного.
Форма урока: лекция с применением информационных технологий обучения.
Оборудование к уроку: наглядные пособия (Презентация №3), персональные компьютеры, видеопроектор, экран.
Цель урока: закрепление и расширение знаний по разветвляющимся и циклическим алгоритмам, изучение структуры «множественный выбор», знакомство с видами циклических структур.
Образовательные задачи:
-
-
формирование алгоритмического подхода к решению задач;
-
расширить и углубить представления об алгоритмах, связать это понятие с программированием, как инструментом разработчика;
-
расширение понятий об алгоритмических структурах (знакомство со структурой «множественный выбор» и двумя видами циклов);
-
научиться реализовывать основные алгоритмические конструкции с помощью блок-схем;
-
формирование умения составлять блок-схемы по примеру;
-
формирование умения восстанавливать пример по блок-схеме.
Развивающие задачи:
-
-
расширение кругозора, внимания, творческого воображения, математического, логического и образного мышления;
-
развитие умения анализировать, делать выводы;
-
пропедевтика применения персонального компьютера как инструмента практической деятельности.
Воспитательные задачи:
Требования к знаниям и умениям: уметь составлять алгоритм по предложенной задаче, знать способ записи алгоритмов в виде блок-схем и основные алгоритмические конструкции (линейная, ветвление, цикл).
План урока
-
Организационный момент — 1 мин.
-
Проверка домашнего задания, повторение прошлого материала — 7 мин.
-
Теоретическая часть — 20 мин.
-
Практическая часть — 10 мин.
-
Домашнее задание — 2 мин.
-
Вопросы учеников, подведение итогов урока — 5 мин.
Ход урока
I. Организационный момент — 1 мин.
II. Проверка домашнего задания, повторение прошлого материала — 7 мин.
После проверки домашнего задания учитель кратко повторяет основные тезисы прошлых двух уроков: «На прошлых двух уроках мы познакомились с вами с таким очень важным понятием не только в информатике, но и в других отраслях науки, как АЛГОРИТМ. Мы знаем, что алгоритм — это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату. Алгоритм позволяет выполнить заданные действия (команды) не только человеку, но и различным техническим устройствам, которые будут называться исполнителями данного алгоритма.
Все алгоритмы обладают определёнными свойствами (назовите их — массовость, понятность, дискретность, определённость, результативность), посредством которых алгоритм и превращается в очень полезный инструмент решения определённых задач. Каждый алгоритм можно записать в различной форме (назовите их — словесный, табличный, графический, программный). Словесным видом записи мы пользуемся повседневно при выполнении самых разных жизненных задач: от завязывания шнурков до прохождения своей любимой компьютерной игры. Потом мы познакомились ещё с одним способом записи: графическим, а именно, с помощью блок-схем и рассмотрели три вида алгоритмических конструкций (назовите их и кратко дайте им определение — линейный (следование шагов один за другим), ветвление (следующий шаг зависит от определённого условия), цикл (многократное повторение какого-либо шага или группы шагов)). На уроке мы ещё раз рассмотрим эти конструкции и изучим новые.
III. Теоретическая часть — 20 мин.
Как мы уже знаем, линейные алгоритмы выполняют шаги один за другим, в строгом порядке, не пропуская и не перепрыгивая шаги. Графически это выглядит, как на (Слайде 2). Это самый простой вид алгоритмов, однако таким образом может быть построен алгоритм для решения далеко не всякой задачи.
В практике хорошо известны задачи, дальнейший ход решения которых зависит от выполнения какого-либо условия. В жизни часто приходится действовать в зависимости от обстоятельств, от каких-то условий. Но если в жизни мы часто ищем выход из ситуации только тогда, когда попали в неё, в алгоритме необходимо предусмотреть все действия которые необходимо выполнить после проверки условия, как в случае его выполнения, так и в случае невыполнения. Чтобы изменять последовательность выполнения различных шагов, применяют алгоритм ветвления.
На (Слайде 3) мы видим два варианта алгоритма ветвления: 1) полный, 2) неполный. В первом случае, если поставленное условие выполняется, то переходим к шагу 1, иначе, если условие не выполняется — к шагу 2. Приведите примеры с использованием полного варианта ветвления (направо пойдёшь — невесту найдёшь, налево пойдёшь коня потеряешь (условие: «идти направо»; если «да», то выполняется «невесту найдёшь», иначе, «коня потеряешь») (Слайд 4).
Неполный вариант ещё проще, там, в случае выполнения (или невыполнения) условия, следует один шаг. Другими словами, если поставленное условие выполняется, то переходим к шагу 1, иначе, если условие не выполняется — сразу переходим к завершению этого участка алгоритма. Приведите примеры с использованием неполного варианта ветвления (Та же ситуация, развилка на дороге и камень с надписью: «направо пойдёшь, невесту найдёшь» и больше никаких вариантов нет. В случае, если пойдёшь налево, то с тобой ровно ничего не приключится, а вот, если направо, то невесту найдёшь) (Слайд 4).
Давайте рассмотрим такую задачу: нам нужно найти местоимения, в зависимости от их лица. Мы знаем, что:
местоимения 1-го лица: я, мы;
местоимения 2-го лица: ты, вы;
местоимения 3-го лица: он, она, оно, они.
В данной задаче нам нужно проверить следующие условия:
-
Местоимения 1-го лица? Если да, то это местоимения я, мы. Если нет, то…
-
Местоимения 2-го лица? Если да, то это местоимения ты, вы. Если нет, то это местоимения он, она, оно, они.
Представьте, что в русском языке существует не 3 лица, а 10. В этом случае нам пришлось бы проверять 10 условий? К счастью, от этой работы нас освобождает новый вид алгоритмических конструкций: множественный выбор.
Множественный выбор — это такой алгоритм:
-
при котором выбирается одно из нескольких заранее предусмотренных шагов;
-
каждый такой шаг называется ветвью;
-
после проверки условия выполняется только одна из ветвей.
В виде блок-схемы такой алгоритм будет изображён как на (Слайде 5). Как теперь можно решить предложенную задачу про местоимения? (Слайд 6). Приведите примеры, где можно использовать алгоритм множественного выбора.
На прошлом уроке мы познакомились с циклической конструкцией. Пожалуйста, кто даст определение цикла? Правильно, это многократное повторение шагов или группы шагов алгоритма. Рассмотрим один слайд из Презентации 2 с прошлого урока (Слайд 7). Из блок-схемы наполнения ведра воды кружкой видно, что мы сначала проверяем условие «ведро неполное», если это так, то добавляем кружку воды в ведро, если полное, то выходим из цикла. В этом примере проверка условия находится перед тем как долить кружку воды, то есть перед тем, как выполнить цикл. Такие циклы называются циклами с предусловием.
Рассмотрим такую задачу: на столе у школьника стоит банка с карандашами разной длины. В руке он держит карандаш, у которого сломался грифель. Он хочет вытянуть из банки карандаш, который был бы длиннее того, что он держит в руках.
Его действия? 1) Вытянет какой-нибудь карандаш из банки. 2) Сравнит этот карандаш с тем, у которого сломан грифель, если карандаш короче, то он будет тянуть ещё один, если длиннее, то оставит себе. Давайте посмотрим на блок-схему данного алгоритма (Слайд 8). Как мы видим, в этом цикле сначала тянем карандаш, потом проверяем условие и, если он короче, то тянем ещё раз. Циклы, в которых сначала выполняется какое-либо действие, а потом проверяется условие, называются циклами с постусловием.
Шаги, которые повторяются в цикле, называются телом цикла. В наших примерах телом цикла будет «доливаем кружку» и «тянем карандаш».
Между циклами с предусловием и постусловием есть как сходства, так и различия. Взглянем на (Слайд 9). Перечислите сходства. Они имеют одно очень важное сходство:
-
В том и другом цикле неизвестно количество повторений (в первом случае нам было неизвестно, сколько кружек воды нужно долить в ведро; а во втором, было неизвестно, сколько карандашей нам понадобится вытянуть, чтобы попался самый длинный).
Различия:
-
Цикл с предусловием сначала проверяет условие, потом выполняет какие-то действия, а с постусловием, сначала выполняет какие-то действия, потом проверяет условие.
-
Из утверждения выше следует, что цикл с предусловием может не выполниться ни разу, а с постусловием всегда выполнится хотя бы один раз. Подумайте почему.
-
Обычно, цикл с предусловием выполняется, когда условие истинно (правдиво), а цикл с постусловием выполняется, когда условие ложно.
VI. Практическая часть — 10 мин.
-
Составьте блок-схему определения названия дня недели по его номеру и определите выходной день это, или нет, считая, что выходной — воскресенье.
Первым шагом, с помощью алгоритма множественный выбор, определяем по номеру день недели. Вторым шагом, проверяем условие, если найденный день — воскресенье, то это выходной день, если нет, то будний. (Слайд 10)
-
По блок-схеме на (Слайд 11) определите результат исполнения алгоритма.
Данная блок-схема подсчитывает количество белых шариков и убирает их из соответствующего ведра.
V. Домашнее задание — 2 мин.
-
Определите по блок-схеме на слайде (Слайд 12) результат исполнения алгоритма.
-
Составьте блок-схему работы алгоритма следующей задачи. Даны два ведёрка с разноцветными шариками. В одном ведёрке находятся красные и жёлтые шарики, а в другом синие и зелёные. Подсчитать количество жёлтых шариков и количество синих шариков.
VI. Вопросы учеников, подведение итогов урока — 5 мин.
Итак, на этом уроке мы расширили наши знания об алгоритмах. Узнали, что есть неполные ветвящиеся алгоритмы. А так же, выяснили, что множественное ветвление может значительно сократить и облегчить запись алгоритмов. А циклы, оказывается, есть с предусловием и постусловием. В наших задачах можно использовать и тот и другой вид, в зависимости от того, чьё решение будет проще, экономичней и изящней.
Понимание того, что мы сегодня изучили, в будущем может очень позитивно сказаться на успешном понимании раздела «Программирование», потому, что эти знания являются базовыми (фундаментальными) и без них мы не сможем двигаться дальше.
УРОК 1.4. МЕТОДЫ РАЗРАБОТКИ АЛГОРИТМОВ.
Раздел программы: «Алгоритмы и исполнители».
Тема урока: «Методы разработки алгоритмов».
Тип урока: Изучение нового материала. Закрепление и углубление пройденного..
Форма урока: лекция с применением информационных технологий обучения.
Оборудование к уроку: наглядные пособия (Презентация №4), персональные компьютеры, видеопроектор, экран.
Цель урока: закрепление и расширение знаний по алгоритмам, изучение разработки алгоритмов методом последовательной детализации (сверху вниз), знакомство со вспомогательными алгоритмами.
Образовательные задачи:
-
-
формирование алгоритмического подхода к решению задач;
-
расширить и углубить представления об алгоритмах, связать это понятие с программированием, как инструментом разработчика;
-
расширение понятий об алгоритмических структурах (знакомство со вспомогательными алгоритмами), изучение разработки алгоритмов методом последовательной детализации (сверху вниз);
-
научиться реализовывать основные алгоритмические конструкции с помощью блок-схем;
-
формирование умения составлять блок-схемы по примеру;
-
формирование умения восстанавливать пример по блок-схеме.
Развивающие задачи:
-
-
расширение кругозора, внимания, творческого воображения, математического, логического и образного мышления;
-
развитие умения анализировать, делать выводы;
-
пропедевтика применения персонального компьютера как инструмента практической деятельности.
Воспитательные задачи:
Требования к знаниям и умениям: уметь составлять алгоритм по предложенной задаче, знать способ записи алгоритмов в виде блок-схем и основные алгоритмические конструкции (линейная, ветвление, два вида циклов, множественное ветвление).
.
План урока
-
Организационный момент — 1 мин.
-
Проверка домашнего задания, повторение прошлого материала — 7 мин.
-
Теоретическая часть — 15 мин.
-
Практическая часть — 15 мин.
-
Домашнее задание — 2 мин.
-
Вопросы учеников, подведение итогов урока — 5 мин.
Ход урока
I. Организационный момент — 1 мин.
II. Проверка домашнего задания, повторение прошлого материала — 7 мин.
На прошлых уроках мы изучили с вами почти все основные алгоритмические конструкции. Назовите их (линейная, ветвление, множественный выбор, цикл с предусловием, цикл с постусловием). С помощью этих конструкций можно построить алгоритм практически любой сложности, с помощью них можно решать задачи из любой отрасли науки, техники, культуры и прочих-прочих. А главное, освоив азы составления алгоритмов, в старших классах вы уверенно приметесь за программирование, ведь алгоритмизация — это фундамент программирования.
III. Теоретическая часть — 15 мин.
Давайте рассмотрим задачу, которая была задана на дом. Может быть, вы заметили в блок-схеме что-то необычное? Например, какую-то закономерность в виде повторяющихся участков алгоритма? Конечно, там, где мы проверяем не пустое ли ведро, затем берём шарик из ведра, потом проверяем его на цвет, и, наконец, посчитываем количество таких шариков. То есть, в данной блок-схеме мы два раза использовали один и тот же фрагмент. А если количество вёдер было бы не два, а, например, 30? Или 3000! Мы бы 3000 раз повторяли один и тот же участок?
К счастью для нас, был продуман и такой вариант (Слайд 4). Все повторяющиеся участки алгоритма, которые занимаются одной и той же задачей, мы вынесем на отдельный лист, дадим этому участку определённое имя (например, «Подсчёт количества шариков»), а в основном алгоритме, в то место, где встречается данный участок, вставим особый блок. Данный повторяющийся участок алгоритма называется вспомогательный алгоритм.
Сложный алгоритм при разработке можно разбивать на отдельные алгоритмы, которые называются вспомогательными. Каждый вспомогательный алгоритм описывает решение какой-либо подзадачи. Как основной алгоритм, так и вспомогательный могут включать основные алгоритмические структуры: линейную, разветвляющую, циклическую. Если при составлении алгоритма возникает необходимость многократного использования одного и того же набора действий, его выделяют в самостоятельный алгоритм и дают ему имя. Можно использовать этот вспомогательный алгоритм в других алгоритмах.
Давайте переделаем алгоритм, используя вспомогательный (Слайд 5). Как мы видим, алгоритм задачи стал гораздо понятнее и читабельнее, с ним удобней работать и меньше затрат на его написание.
Перечислим основные требования к вспомогательным алгоритмам:
-
ВА должен иметь имя, с помощью которого его можно вызвать из основного или другого вспомогательного алгоритма.
-
ВА должен возвращать управление тому алгоритму, из которого был вызван.
-
ВА должен быть относительно небольшим.
Рассмотрим алгоритм приготовления завтрака (Слайд 6). Этап 1. Как мы видим, алгоритм достаточно прост и понятен. Но понятен только человеку, который сам когда-то готовил бутерброды, яичницу и чай. А если кто-то раньше никогда и в глаза не видел яичницы, или не знает как её приготовить, то ему данный этап будет совершенно непонятен. Либо можно представить себе ситуацию, когда приготовлением завтрака занимается робот (компьютер).
Следовательно, нужно детализовать каждый шаг нашего алгоритма (Слайд 7). Этап 2. На этом этапе в общем виде представлено, как готовится бутерброд, яичница и чай, но у исполнителя всё ещё могут быть трудности, например, с тем, откуда брать ломтик хлеба, или как вбивать яйца, или как насыпать сахар. Значит, нам придётся ещё раз уточнять каждый шаг (Слайд 8). Этап 3. Теперь ситуация проясняется. Если исполнителем является человек, то уже почти ни у кого не возникнет затруднений, например в том, как приготовить ломтик хлеба. Но мы должны понимать, что каждый из шагов приготовления ломтика, опять можно детализовать, разложив более детально, например, процесс отрезания ломтика (Слайд 9). Этап 4. На этом этапе детализация дошла до того момента, когда все нюансы приготовления завтрака понятны и мы с уверенностью можем сказать, что любой исполнитель выполнит этот алгоритм. (Если, конечно, данный исполнитель предназначен для выполнения такого рода задач, ведь, наверняка, фрезерный станок, даже с наикрутейшим программным обеспечением, вряд ли осилит задачу приготовления завтрака).
Таким образом, двигаясь от наиболее общего алгоритма, постепенно уточняя его, мы добрались к наиболее детальному. Такой метод разработки алгоритмов называется методом последовательной детализации. Обратите внимание на то, что при разработке данного алгоритмы сложные участки алгоритма разбивались на более простые, те, в свою очередь, на ещё более простые. При этом такие участки алгоритма, как, например, «Отрезать ломтик хлеба», или «Намазать ломтик хлеба маслом», или «Разбить на сковороду яйцо» и так далее, можно выделить отдельно и использовать как вспомогательные. Потом, в случае решения подобной задачи, например, при разработке алгоритма приготовления обеда, эти участки нам уже не нужно будет разрабатывать повторно, мы просто используем готовые вспомогательные алгоритмы.
Таким образом, последовательная детализация — это построение алгоритма «сверху вниз» (Слайд 10). Сначала строится основной алгоритм и в нем записываются обращения к вспомогательным алгоритмам первого уровня. Затем составляются эти вспомогательные алгоритмы, в которых могут быть записаны обращения к вспомогательным алгоритмам второго уровня, и т.д. Вспомогательные алгоритмы последнего уровня не содержат обращений к другим вспомогательным алгоритмам.
Искусство составления алгоритма заключается в умении конструировать сложные алгоритмы из более простых, то есть обучить исполнителя сложным действиям постепенно, от простого к сложному. Алгоритмы, построенные подобным образом, легче редактируются, читаются и выполняются.
IV. Практическая часть — 15 мин.
(Слайд 11) Методом последовательной детализации построить кофейную машину, которая будет производить кофе по следующим принципам:
-
Нажатием на кнопку «КОЛИЧЕСТВО» мы задаём количество чашек кофе.
-
Нажатием на кнопку «КОФЕ» мы задаём количество ложечек кофе.
-
Нажатием на кнопку «САХАР» мы задаём количество ложечек сахара.
-
Нажатием на кнопку «СЛИВКИ» мы задаём количество ложечек сливок.
-
Нажатием на кнопку «ОПЛАТИТЬ» автомат, в зависимости от состава кофе, показывает нам цену и предлагает оплатить.
-
Если сумма, которая была предложена автомату, достаточна, то выдаётся сдача и начинается процесс приготовления кофе. Если недостаточна, то автомат запрашивает недостающую сумму и, после её ввода готовит кофе.
Решение (Слайд 12, 13, 14, 15, 16)
V. Домашнее задание — 2 мин.
Методом последовательной детализации построить машину для изготовления:
А) девочкам: кухонного фартука (с карманами и вышивкой);
Б) мальчикам: деревянного цветочного горшка (с резным орнаментом и тарелкой под дно).
VI. Вопросы учеников, подведение итогов урока — 5 мин.
Как мы видим, вспомогательные алгоритмы могут существенно облегчить решение поставленной задачи не только за счёт того, что решение сразу становится наглядным и простым для записи, но и за счёт разделения труда, когда одной группе специалистов поручается разработка и сопровождение не целого проекта, а отдельной его части — подзадачи. Такое разделение труда позволяет эффективно решать крупные проекты.
УРОК 1.5. ПРИМЕНЕНИЕ АЛГОРИТМИЧЕСКИХ КОНСТРУКЦИИ В РЕШЕНИИ КОНКРЕТНЫХ ЗАДАЧ.
Раздел программы: «Алгоритмы и исполнители».
Тема урока: «Применение алгоритмических конструкций в решении задач».
Тип урока: Закрепление и углубление пройденного материала.
Форма урока: урок-практикум.
Оборудование к уроку: наглядные пособия (Презентация №5), персональные компьютеры, видеопроектор, экран.
Цель урока: закрепление знаний по алгоритмам.
Образовательные задачи:
-
-
формирование алгоритмического подхода к решению задач;
-
расширить и углубить представления об алгоритмах, связать это понятие с программированием, как инструментом разработчика;
-
научиться реализовывать основные алгоритмические конструкции с помощью блок-схем;
-
формирование умения составлять блок-схемы по примеру;
-
формирование умения восстанавливать пример по блок-схеме.
Развивающие задачи:
-
-
расширение кругозора, внимания, творческого воображения, математического, логического и образного мышления;
-
развитие умения анализировать, делать выводы;
-
пропедевтика применения персонального компьютера как инструмента практической деятельности.
Воспитательные задачи:
Требования к знаниям и умениям: уметь составлять алгоритм по предложенной задаче, знать способ записи алгоритмов в виде блок-схем и основные алгоритмические конструкции (линейная, ветвление, два вида циклов, множественное ветвление).
.
План урока
-
Организационный момент — 1 мин.
-
Проверка домашнего задания, повторение прошлого материала — 7 мин.
-
Практическая часть — 30 мин.
-
Домашнее задание — 2 мин.
-
Вопросы учеников, подведение итогов урока — 5 мин.
Ход урока
I. Организационный момент — 1 мин.
II. Проверка домашнего задания, повторение прошлого материала — 7 мин.
III. Практическая часть — 30 мин.
Задача №1. Определите какую задачу решает алгоритм по блок-схеме на Слайде 1.
Данный алгоритм является алгоритмом нахождения корней квадратного уравнения.
Задача №2. (Слайд 2) Составить блок-схему решения следующей задачи: найти значение Y, если известно, что
-
Y = 51*x - 2, при X 0;
-
Y = 51*x + 2, при X
-
Y = 2*x + 15, при X = 0.
Решение: (Слайд 3)
Задача №3. По блок-схеме на Слайде 4 найдите значение Y, при N = 5.
Решение: данный алгоритм вычисляет сумму Y = 1 + 1/2 + 1/3 + 1/4 + 1/5 + … + 1/N. Ответ: при Х = 5 Y = 2,28(3)
В данной задаче используется циклическая конструкция. Цикл выполняется до тех пор, пока значение i не станет равным нашему значению N т.е., в нашем случае, пять раз. С каждым шагом переменная i будет принимать значение на единицу больше. Стоит отметить, что вычисление сумм, как в этой задаче — это типичная циклическая задача.
Задача №4. Дана блок-схема (Слайд 5). Какое значение будет иметь z на выходе, если, x = 4.
Решение: для облегчения решения задачи используем таблицу, как на Слайде 6.
Задача №5. Придумать задачу на использование алгоритмических конструкций «Множественный выбор» и «Цикл» и построить блок-схему её решения. Задача должна быть по теме, изучаемой на одном из ваших уроков.
IV. Домашнее задание — 2 мин.
Доработать задачу №5, условие, блок-схему. Красиво оформить и сохранить до курса изучения программирования.
V. Вопросы учеников, подведение итогов урока — 5 мин.
Мы завершили изучение очень важного раздела информатики «Алгоритмы». Несмотря на то, что задачи, которые сегодня решали, очень скучные и неинтересные, они наглядно подводят нас к научно-практическому применению алгоритмов в школе, в быту, в повседневной жизни. Мы вплотную подошли к очень интересному и увлекательному разделу «Программирование», который будем изучать на будущих уроках информатики. Работая на других уроках, пытайтесь мыслить алгоритмически, перекладывая ту или иную задачу на язык алгоритмов, и вы поймёте, что решение этих задач значительно упростится.