Цели:
- образовательные: сформировать представление обучающихся об операторе цикла с параметром, его синтаксисе и семантике, правилах организации цикла, задачах, решаемых с применением циклов с параметром.
- воспитательные: воспитывать настойчивость и целеустремленность в достижении поставленной цели, умение работать самостоятельно и в группе, слушать друг друга, тренировать навыки работы с техникой.
- развивающие: развивать логическое и алгоритмическое мышление, коммуникативные навыки и интерес к предмету, умение переносить знания из одной области в другую.
Задачи:
- обеспечить нормальную внешнюю обстановку на занятии и психологически подготовить обучающихся к общению и предстоящему занятию,
- организовать целенаправленную деятельность, подготовить обучающихся к усвоению знаний, сформулировать цели и задачи занятия, найти средства для их реализации,
- проверить усвоение материала, изученного на прошлом занятии,
- включить обучающихся в процесс добывания знаний, умений и навыков,
- дать конкретные представления об изучаемых фактах, основной цели вопроса, добиться изучения способов, путей и средств, которые привели бы к воспроизведению изученного материала,
- закрепить в памяти те знания и умения, которые необходимы для самостоятельной работы дома,
- добиться повышения уровня осмысления изучаемого материала и глубины его понимания, подвести итоги урока,
- провести инструктаж по домашнему заданию,
- проанализировать и выставить оценки.
Тип занятия: Комбинированный урок.
Продолжительность: 2 часа.
Оборудование: записи на доске, компьютер с инсталлированным пакетом Turbo Pascal 7.0, мультимедийный проектор, компьютерная презентация (Приложение 1), дидактический материал (карточки с заданиями).
План занятия:
- Организационный момент (3 мин)
- Мотивационный этап (4 мин)
- Проверка домашнего задания (5 мин)
- Повторение изученного материала, актуализация знаний и умений (15 мин)
- Изучение новой темы (25 мин)
- Первичное закрепление знаний, решение задач (19 мин)
- Обобщение и систематизация знаний (10 мин)
- Подведение итогов занятия (3 мин)
- Постановка домашнего задания (3 мин)
- Рефлексия, выставление оценок (3 мин)
Ход занятия
1. Организационный момент
Приветствие, фиксация отсутствующих, организация внимания и позитивного настроя обучающихся на занятии.
2. Мотивационный этап
Вот уже несколько занятий подряд мы с вами осваиваем программирование. Ребята, сегодня мы должны изучить тему: "Операторы цикла с параметром". Откройте тетради, запишите число и тему. Как вы думаете, что мы должны сделать на занятии?
Изучить тему, научиться решать задачи.
Совершенно верно, цель нашего занятия: изучить правила описания циклов в языке Паскаль и научиться решать задачи с использованием оператора цикла с параметром.
Какие перед вами стоят задачи:
- показать своё мастерство, свои умения применять полученные знания при решении задач,
- работать в группе и индивидуально, самостоятельно,
- поддерживать оптимальный климат в своей группе, оказывать взаимопомощь и взаимоподдержку, быть доброжелательным по отношению друг к другу и к преподавателю,
- работать с компьютером,
- анализировать материал, делать выводы, выделять главное,
- показать свою работоспособность, получить максимум знаний и только хорошие и отличные оценки за свой труд,
- не устать и с хорошим настроением пойти на следующее занятие.
Занятие будет состоять из нескольких этапов. И начну я его со слов знаменитого отечественного программиста Андрея Петровича Ершова: ": Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с талантом сооружать все что угодно, из нулей и единиц. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов, с трезвой практичностью экономиста. А кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и многое другое."
Особое внимание хочу обратить на слова о коллективной работе, т.к. сегодня вы будете работать в группах, выполняя задания совместно, и от того насколько слажено вы будете работать, помогать друг другу, как сможете организовать работу в своей группе, и будет зависеть результат и ваши оценки. Поэтому в качестве девиза нашего занятия я предлагаю взять фразу:
Работай не только для себя, но и для товарища!
Я заранее попросила вас выбрать от каждой из 4 групп капитана.
На плечи капитанов ложится ответственность следить за тем, как задействован в работу каждый участник группы. Кроме того, на каждом столе вы видите оценочные ведомости, в которых вам необходимо будет проставлять оценки по 5-бальной шкале каждому участнику группы после каждого пройденного этапа занятия и в конце занятия подвести итоги, огласить и прокомментировать поставленные оценки. Я рассчитываю на вашу добросовестность, компетентность и объективность. Работа капитанов будет оцениваться лично мной.
3. Проверка домашнего задания.
На прошлом занятии было задано составить программу, которая позволяет вводить номер месяца и выводит количество дней в этом месяце.
Ход решения с объяснением и полученный результат я попрошу продемонстрировать у доски непосредственно в среде программирования ТурбоПаскаль.
Молодцы! С домашним заданием вы успешно справились, но давайте по нему всё же сделаем небольшой вывод: Какой оператор применяется при решении задачи, какова его структура и как он работает? Попрошу дать ответ.
Хорошо! А теперь капитаны, пришло время поставить оценки своим товарищам за выполнение домашнего задания, оценки можете согласовывать со своей группой, но они должны быть объективными.
4. Актуализация и повторение изученного материала
На предыдущих занятиях вы узнали, что программирование это научная область, которая позволяет программистам решать всевозможные задачи, писать программы, создавать программное обеспечение практически для всех областей человеческой деятельности, тем самым автоматизируя работу людей различных профессий и облегчая их труд.
Любая программа, которая установлена на вашем компьютере и которой вы пользуетесь для работы или развлечения написана на одном из языков программирования.
Для того, чтобы разработать программу, нужно четко представлять, какие действия необходимо выполнить и в какой последовательности, т.е., другими словами, вы должны описать алгоритм решения поставленной задачи. Существует всего на всего три вида алгоритмов: линейные, разветвляющиеся и циклические. Все программы, о которых я говорила, написаны исключительно с использованием ТОЛЬКО этих трех видов алгоритмов. На данный момент вы знаете, как описать в Паскале алгоритмы линейной и разветвляющейся структуры. Поэтому, для того, чтобы обладать полным пакетом информации, решать весь спектр задач разной сложности, стать после окончания колледжа отличным программистом, получая при этом неплохие деньги (так как профессия программиста очень престижна, востребованная в настоящее время и высокооплачиваемая) остаётся всего на всего узнать, как описываются циклы в языке программирования. Этим нам и предстоит сегодня заняться, но прежде я предлагаю немного освежить свои знания, вспомнив некоторые ранее изученные понятия, и повторить все те правила, которым мы обязаны подчиняться при написании любой программы.
Группы получат разные задания, выполняя при этом разные функции:
1 группа - Программисты-теоретики - получает задание ответить на вопросы (Приложение 2)
2 группа - Программисты-аналитики - должна установить соответствие между видами алгоритмов и блок-схемами (Приложение 3)
3 группа - Программисты-лингвисты - исправляет ошибки в программном коде и формулирует соответствующие ошибкам синтаксические правила языка (Приложение 4)
4 группа - Программисты-исследователи - исследуют готовую программу, нужно выяснить условие задачи и объяснить, как она работает (Приложение 5)
На выполнение задания отводится не более 5-7 минут.
Одновременно отвечают 1 и 2 группы: первая в форме фронтального опроса отвечает на вопросы, а вторая тем временем показывает соответствующие ответам блок-схемы.
От третьей группы выходят 2 представителя, один из которых исправляет выявленные ошибки в программном коде на экране, второй их комментирует и формулирует правила, на основании которых производились исправления.
Четвертая группа отвечает на вопрос: Что решает задача, какое условие задачи?
Отвечают
Вы совершенно правы, программа позволяет вывести на экран перевод значений долларов от 25$ до 30$ в рубли. Давайте это проверим! (Запускаю программу)
А теперь давайте вернемся к коду программы и осудим его.
- Что заметили необычного?
- Сколько раз они повторяются?
- А если нужно перевести все доллары от 20 до 3000, из скольких строк будет состоять программа?
Два действия повторяются несколько раз.
35-25+1=11 раз
Строк будет много, и написание программы займет продолжительное время.
Для того, чтобы не записывать одинаковые действия несколько раз в языке Паскаль предусмотрены операторы повторения, их чаще всего называют операторами цикла.
Таким образом, мы подошли к теме занятия - Операторы цикла с параметром.
Давайте подведем итог решения задачи: при написании программы нужно соблюдать определенные синтаксические правила. Капитаны, выставите оценки за работу на этапе повторения ранее изученного материала.
5. Изучение новой темы
Циклы бывают с предусловием, с постусловием и с параметром. В языке Паскаль существуют операторы, реализующие все типы циклов. Подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Но в некоторых случаях всё же предпочтительнее использовать какой-то один из операторов. Сегодня мы рассмотрим только один из операторов цикла - цикл с параметром For и в конце занятия вы должны ответить на вопрос:
В чем заключается особенность применения оператора цикла с параметром в языке Паскаль?
Цикл с параметром предназначен для повторения некоторого участка программы заданное (известное заранее) число раз.
Для организации этого цикла используется оператор цикла с параметром, имеющий вид:
For <параметр цикла> := <начальное значение> To <конечное значение> Do <тело цикла>;
где
for - для;
to - до;
do - выполнить;
<параметр цикла> - переменная целого типа;
<начальное значение> и <конечное значение> - арифметические выражения целого типа;
<тело цикла> - один или несколько операторов языка Паскаль.
Если тело цикла содержит более одного оператора, то оно заключается в так называемые операторные скобки begin...end.
В отличие от других языков программирования, в Паскале шаг изменения параметра строго постоянен и равен 1. Такой цикл называют прямым. Единственное исключение из этого правила составляет цикл с шагом (-1), который имеет следующий вид:
For <параметр цикла> := <начальное значение> DownTo <конечное значение> Do <тело цикла>;
Этот цикл называют обратным.
В прямом цикле начальное значение меньше конечного, в обратном - начальное значение больше конечного.
Например,
For i := 1 To 10 Do write(i); - выводит на экран строку 12345678910
For i := 10 DownTo 1 Do write(i); - выводит на экран строку 10987654321
Давайте воспользуемся новой информацией для решения нашей задачи и посмотрим, что изменится?
Мы должны выбрать параметра цикла, то есть переменную, которая меняется от начального значения до конечного, увеличиваясь на единицу. Есть такая переменная?
Да, это переменная d.
Значит, в качестве параметра цикла мы должны выбрать переменную d. Запись цикла с параметром для этой задачи будет выглядеть следующим образом:
for d:=25 to 35 do
Читается данная запись так: "для значений переменной d от 25 до 35 выполнять:"
Что будет являться телом цикла?
В нашем случае для каждого значения доллара мы должны выполнить 2 команды: перевести текущее количество доллара в рубли; вывести на экран полученное значение. Таким образом, в теле цикла у нас будет более одной команды, поэтому необходимо заключить их в операторные скобки.
Тело цикла будет иметь вид:
begin
r:=d*k;
writeln(d, '$=', r, 'руб');
end;
Итак, наш цикл выглядит так:
for d:=15 to 20 do
begin
r:=d*k;
writeln(d, '$=', r, 'руб'); end;
Прочитать данную запись можно следующим образом: "для каждого значения доллара от 25 до 35 происходит перевод текущего значения из долларов в рубли и вывод полученной информации на экран".
Давайте проверим правильность решения задачи. (Запуск программы) Результаты совпадают.
Невооруженным взглядом можно заметить, что результаты решения задачи абсолютно одинаковые, а запись сократилась в разы.
Эта очевидная разница даёт нам право сказать, что применение операторов цикла позволяет использовать компьютер эффективнее за счет сокращения длины программы и, следовательно, времени, потраченного на её составление и отладку.
Как вы думаете, что произойдет, если в конце цикла for поставить " ;" ?
Если записать for d:=15 to 20 do; - то это будет значить следующее: "для значений доллара от 15 до 20 никаких действий производить не требуется".
Что произойдет если убрать операторные скобки, обрамляющие тело цикла?
Если запись будет следующей
for d:=15 to 20 do
r:=d*k;
writeln(d, '$=', r, 'руб');
то в качестве тела цикла будет выполняться только команда r:=d*k;, а команда вывода информации на экран writeln(d, '$=', r, 'руб'); будет выполнена только один раз после выхода из цикла.
Сколько раз повторится тело цикла? Конечное значение - Начальное значение +1.
Давайте подытожим новый материал, выделим основную мысль, на основе которой будут решаться задачи:
Для организации алгоритма циклической структуры используются операторы
For:To:Do и For:DownTo:Do, в первом случае параметр увеличивается на 1, во втором - уменьшается на 1. Если в теле цикла более одного оператора, заключаем их в операторные скобки.
Для закрепления материала решим несколько задач.
6. Первичное закрепление знаний
Более сильные студенты получают задание на карточках, с остальными решаем вместе.
Те, кто не получили карточку, переписывают в тетради задачу с доски. Те, кто получил карточку, посмотрите на неё, видите 3 задачи разных уровней сложности, вам предоставляется право выбрать 1 задачу из 3 по вашим силам, ту, которую вы уверены, что решите (Приложение 6). Выполняете самостоятельно.
Вместе: Составить программу нахождения среднего арифметического всех целых чисел от 10 до 45.
Теперь, сделаем наоборот, кто решал самостоятельно, переписываете в тетради задачу с доски, остальные будут выполнять задания самостоятельно, выберите посильную для себя задачу из карточки (Приложение 7).
Вместе: Известны оценки по информатике каждого студента группы (оценки вводятся с клавиатуры). Определить количество пятёрок, четвёрок, троек и двоек.
7. Обобщение и систематизация знаний
На экране представлены тестовые задания. Необходимо ответить на вопросы теста.
Тест
1. Какой из циклов записан неправильно?
- for а:=15 to 20 do;
- for k:=20 to 3 do;
- for d:=15 downto 4 do;
2. Что будет выведено на экране в ходе выполнения программы for k:=0 to 3 do write(k)?
- 0123;
- 123;
- 3210;
3. Что будет выведено на экране в ходе выполнения фрагмента программы
y:=0;
for i:= 0 to 2 do y:=y+1;
write(y);
- 2;
- 123;
- 3;
4. Сколько раз выполнится цикл for k:=20 to 50 do write(k)?
- 31;
- 30;
- 50.
Вы получили определенную комбинацию цифр! У кого какая комбинация получилась? Поменяйтесь листочками, сделайте взаимопроверку. А вот правильная комбинация - 2131. Если ни одна цифра не совпала, поставьте оценку "2", 1 или 2 совпадения поставьте оценку "3", 3 совпадения - "4", все совпадения - "5". Поднимите руки, кто получил оценку "2", "3", "4", "5". Капитаны, проставьте эти оценки в свои ведомости и подсчитайте общую оценку за работу на занятии.
8. Подведение итогов урока
Задачи: выделить главное из темы занятия, подвести итоги.
Сделаем выводы по нашей теме. Как вы помните, мы поставили вопрос к занятию, он следующий: В чем заключается особенность применения оператора цикла с параметром в языке Паскаль?
Ответ: Цикл с параметром применяется ТОЛЬКО тогда, когда количество повторений известно заранее, то есть когда известно начальное значение параметра, его конечное значение и величина шага равна 1 или -1.
9. Постановка домашнего задания
К следующему занятию вам нужно решить обязательно 2 задачи №1 и №2, задачи №3, 4 на дополнительную оценку (Приложение 8)
10. Выставление оценок
А теперь давайте узнаем, какие оценки вы получили за свою работу. Оглашение, выставление в журнал.
Я всех вас благодарю за работу, вы все хорошо себя показали, активно решали задачи, отвечали на вопросы, а главное помогали друг другу.
11. Рефлексия
- Было ли вам комфортно на занятии?
- Решение какой задачи было для вас наиболее сложным?
- С какими именно трудностями вы столкнулись при решении этой задачи?
- Какие задания показались вам простыми?
Ребята, я вами очень довольна. А вам занятие понравилось? Всем спасибо!!! Занятие окончено!
Литература.
- Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: учеб. пособие. - 3-е изд., испр. и доп. - М.: ФОРУМ, 2008. - 432 с.
- Голицына О.Л., Партыка Т.Л., Попов И.И. Языки программирования: учеб. пособие. - М.: ФОРУМ: ИНФРА-М, 2008. - 400 с.
- Канцедал С.А. Алгоритмизация и программирование: учебное пособие. - М.: ИД "ФОРУМ": ИНФРА-М, 2008. - 352 с.
- Основы программирования: Учебник для сред. проф. образования / И.Г.Семакин, А.П. Шестаков. - 2-е изд., стер. - М.: Издательский центр "Академия", 2003. - 432 с.