Задачи занятия: Сформировать навыки поиска поиск минимума и максимума; Закрепить навыки работы с одномерными массивами
Вид материала | Практическая работа |
СодержаниеПедагогические технологии Ход занятия Самый распространенный ответ 1) исправить программу так, чтобы найти минимальный элемент массива. 2) Домашнее задание Пояснение к сказке |
- Задачи: Сформировать навыки работы с историческими документами Сформировать навыки, 156.78kb.
- Задачи: Сформировать навыки работы с историческими документами Сформировать навыки, 157.3kb.
- Задачи: Формировать умения и навыки самостоятельной, коллективной работы. Проверить, 39.89kb.
- Урок развития устной речи «Пейзажная зарисовка. Подготовка к сочинению-описанию», 53.86kb.
- Пархоменко Сергей Анатольевич ( sparkhomenko@hse ru ) Москва 2007г. I. пояснительная, 122.25kb.
- Задачи : 1 совершенствовать умение применять теоретические знания на практике, навыки, 61.42kb.
- Дать пятиклассникам понятие о натюрморте, закрепить и углубить представление об описании;, 25.82kb.
- «Пейзажная зарисовка» Подготовка к сочинению – описанию, 58.18kb.
- Задачи: Образовательные: -научить применять теоретические знания и практические умения, 62.99kb.
- Тема: Сочинение описание «Наш край зимой», 325.78kb.
Автор: Клещунова Марина Анатольевна
Образовательное учреждение: МОУ «Зональненская СОШ» Томского района.
п. Зональная станция
Предмет: Информатика.
Класс: 10
Тема занятия: Базовый алгоритм нахождения максимального (минимального) элемента массива.
Необходимое оборудование и материалы для занятия: компьютер, программная среда Turbo-Pascal 7.0.
Время реализации занятия: 45 мин. (1 урок).
Задачи занятия:
- Сформировать навыки поиска поиск минимума и максимума;
- Закрепить навыки работы с одномерными массивами;
- Сформировать навыки выполнения технологической цепочки разработки программ средствами языка программирования Pascal;
- Активизировать познавательный процесс, направленный на формирование у учащихся навыков поиска собственного решения поставленной задачи.
Педагогические технологии: проблемная, информационные.
План занятия:
Блок урока | Время реализации |
Организация начала урока. Рассказ сказки. | 3 мин |
Постановка проблемы | 1 мин. |
Поиск решения | 18 мин. |
Обобщение и выводы | 2 мин. |
Домашнее задание | 1 мин. |
Практическая работа на компьютере | 20 мин. |
Ход занятия
Учитель: Ребята, сегодня начнем урок с того, что я расскажу вам сказку
В одном селе жил был храбрый кузнец. Он ничего не боялся, был справедливым и добрым малым.
Недалеко от села находились развалины какого-то старого замка. По легенде, в этих развалинах хранились несметные сокровища. Много смельчаков пыталось добыть эти сокровища, но никто так и не вернулся живым с этих развалин.
Как-то раз у кузнеца сильно заболел отец, а денег на лечение не было. Решил кузнец добыть денег в развалинах старого замка.
Собрал он с собой котомку с запасом еды и отправился в путь. К развалинам кузнец подошел, когда уже стемнело. Там он нашел комнату, где был камин, развел огонь, сварил похлебку и сел ужинать. Тут раздался страшный гром и на пороге появился еле живой дряхлый старик. Кузнец подбежал к старику, скорее посадил его за стол поближе к огню, налил похлебки. После ужина старик повеселел и говорит: «Спасибо тебе добрый человек. За то, что ты меня обогрел и накормил, я тебя за это щедро награжу. Пойдем со мной».
Пришли они в подвал, и кузнец увидел в нем целую гору золотых монет. А старик ему говорит: «Здесь 18000 монет разного номинала. Если ты к утру найдешь в этой куче монету самого большого номинала, то возьмешь с собой столько золота, сколько сможешь унести. Если же ты не успеешь этого сделать, то так и останешься в этом подвале навечно».
Кузнец подумал, почесал голову, и приступил к работе. К утру, он отыскал нужную монету, взял награду и отправился домой, спасать своего больного отца.
Ребята, представьте себя на месте кузнеца, как бы вы искали эту монету?
Самый распространенный ответ:
Разложу монеты в кучки по возрастанию. Комментарий учителя: так найти можно, но очень долго. А в подвале мало места и время ограничено. Подумайте еще.
Иногда, ученики сами находят правильный алгоритм, если этого не происходит, то учитель
задает наводящий вопрос:
- Учитель берет в руку два разных предмета и спрашивает: «Какой предмет больше?». Ученики отвечают. А как вы это определили? Сравнили. А если, я возьму еще один предмет, какой из них будет больше? Сравним больший из двух с третьим и снова выберем который больше.
- А теперь давайте сформулируем данный алгоритм для любого количества предметов (монета тоже предмет).
Учитель выслушивает формулировки обучающихся для каждого этапа и выбирает подходящую.
Словесная формулировка нахождения монеты наибольшего номинала:
- Берем в одну руку первую монету;
- Берем в другую руку - следующую монету;
- Сравниваем монеты и оставляем в руке большую, а другую откладываем на новое место.
- Повторяем предыдущие действия (п.2, п.3.), пока не закончатся все монеты.
- В результате, в вашей руке останется монета наибольшего номинала.
Учитель: «Давайте, формализуем данный алгоритм. Скажите, с помощью какого составного типа в языке программирования Turbo-Pascal мы можем представить в памяти компьютера наши монеты?»
Предполагаемый ответ – массива.
А какая размерность массива?
Предполагаемый ответ – 18000.
Нам еще нужны какие-нибудь переменные?
Предполагаемый ответ – да, переменная цикла. Обозначим ее i. И переменная для хранения максимального значения номинала монеты. Обозначим ее MAX.
Итак, в разделе описания переменных мы должны описать следующие переменные:
VAR
A:array[1..18000] of integer; {массив, который содержит номиналы монет}
I: integer; {параметр цикла}
MAX: integer; {переменная для хранения максимального значения}
Учитель: Скажите, какой способ заполнения массива наиболее подходит для этой задачи?
Предполагаемый ответ: массив удобнее всего заполнить случайными значениями.
Учитель: Предположим, что номинал монет находится в диапазоне от 1 до 100. Как мы его запишем?
Предполагаемый ответ: random(100)+1;
Итак, в теле программы мы запишем:
BEGIN
For i:=1 to 18000 do
Begin
A[i]:=random(100)+1;
Write(a[i]:5);
End;
Теперь формализуем ранее записанный словесный алгоритм нахождения монеты наибольшего номинала:
Как запишется на формальном языке каждый пункт данной формулировки?
Предполагаемый ответ:
- Присвоить переменной max первый элемент массива;
- Сравнить max со следующим элементом массива, если следующий элемент больше max, то max присвоить значение этого элемента.
- Пункт 2. Повторить n-1 раз. (начальное значение переменной цикла 2).
Итак, продиктуйте мне, пожалуйста, как я должна записать этот алгоритм на языке программирования Turbo-Pascal.
(Ученики диктуют, учитель записывает, если возникает проблема, то она решается совместно учителем и учениками).
В итоге получится следующий алгоритм нахождения максимального элемента массива:
max:=A[1];
For i:=2 to 18000 do
If max
Скажите, мы увидим результат работы программы на экране монитора?
Предполагаемый ответ: нет.
Почему?
Предполагаемый ответ: Потому, что мы не вывели значение переменной max.
Как это сделать?
Предполагаемый ответ: writeln(‘max=’,max);
Таким образом, получилась программа:
Program xx;
Uses crt;
VAR
A:array[1..18000] of integer; {массив, который содержит номиналы монет}
I: integer; {параметр цикла}
max: integer; {переменная для хранения максимального значения}
BEGIN
For i:=1 to 18000 do
Begin
a[i]:=random(100)+1;
Write(a[i]:5);
End;
max:=a[1];
For i:=2 to 18000 do
If max
writeln(‘max=’,max);
readkey
end.
Ребята скажите, данную программу можно использовать только для нахождения монеты наибольшего номинала?
Предполагаемый ответ: нет.
Приведите примеры, где можно в нашей жизни использовать данный алгоритм?
Наиболее часто приводимые примеры:
- Данную программу можно использовать для определения победителя соревнований (кто набрал наибольшее количество очков);
- Данную программу можно использовать для нахождения не только максимального, но и минимального значения элемента массива.
- Данную программу можно использовать для определения максимальной или минимальной температуры окружающей среды за определенный период времени и т.д.
Вывод: Таким образом, данный алгоритм можно использовать для решения не только одной задачи, но и целого ряда однотипных задач с разными входными значениями.
Вопрос ученикам: Скажите, как называется это свойство алгоритма?
Предполагаемый ответ: массовость.
Вопрос ученикам: Что нужно изменить в программе, чтобы она работала для любой размерности массива?
Предполагаемый ответ: Ввести n с клавиатуры и заменить 1800 на n. Второй способ задать n в разделе описания констант.
А теперь наберите и отладьте данную программу на компьютере для n элементов массива, а затем модифицируйте данный алгоритм, выполнив следующее задание:
1) исправить программу так, чтобы найти минимальный элемент массива.
2) дописать программу, чтобы запоминался порядковый номер минимального элемента массива.
Домашнее задание: придумайте задачу, для решения которой подходит данный алгоритм нахождения минимального (максимального элемента массива).
Литература:
- Н.Е. Тимошевская, Е.А. Перышкина «Основы алгоритмизации и программирования на языке Pascal». Справочник. Учебное пособие. Томск 2005. - 135с.
- Тимошевская, Н. Е., Перышкина, Е. А. Основы алгоритмизации и программирование на языке Pascal. Рабочая тетрадь: Учеб. пособие. — Томск, 2005. — 116 с.
Пособия рекомендованы Российской академией образования к использованию в образовательных учреждениях, реализующих образовательные программы общего образования и допущены ДОО Томской области.
Пояснение к сказке:
Сказка составлена по мотивам старинной итальянской сказки «Храбрый мельник».
Сказку «Храбрый мельник» я читала очень давно, еще в детстве, книга была библиотечная, поэтому автора сборника сказок восстановить не представляется возможным. Сказка была очень длинная со многими подробностями, и в этой сказке проблема была поставлена перед мельником другая – нужно было разделить монеты пополам, а количество монет было нечетным. Мельник для решения проблемы разрубил монету пополам.
При прохождении темы нахождения максимального (минимального) элемента массива мне пришла в голову мысль, а что если переделать сказку так, чтобы герою пришлось искать монету максимального номинала. А так как в русских сказках мельники всегда состоятельные люди, а герой был беден, то я изменила героя сказки на кузнеца.