Инфоурок Информатика КонспектыКонспект урока информатики в 11 классе «Решение задач по программированию»

Конспект урока информатики в 11 классе «Решение задач по программированию»

Скачать материал

План-конспект урока в 11 «б» классе по информатике

"Решение задач по программированию", 13.03.2013

Цель урока:  комплексное применение полученных знаний по программированию в среде Паскаль при решении задач.

Задачи урока:

Обучающие:

  • закрепить знания о структуре программы в среде Turbo Pascal и основных операторов программы
  • закрепить навыки написания программ.
  • формировать умения комплексного применения знаний по программированию в среде Turbo Pascal при решении задач

Развивающие:

  • развитие логического мышления, познавательных и исследовательских способностей учащихся;
  • формирование умений анализировать, сравнивать, выделять главное;
  • развитие навыков самостоятельной работы.

Воспитательные:

  • воспитание творческого подхода к работе, умения экспериментировать;
  • формирование целеустремленности, аккуратности при работе на компьютере, информационной культуры.

Практические развитие навыков написания программ на компьютере с помощью языка Паскаль

Тип урока: закрепление материала с применением современных компьютерных технологий.

Вид урока: комбинированный.

Требования к знаниям и умениям:

учащиеся должны знать: основные этапы решения задач по программированию, структуру программы, основные операторы программы, алгоритмы решения задач; учащиеся должны уметь: работать в программе Турбо Паскаль, писать программы, запускать и проводить их отладку.

Методы: исследование, частично поисковый, индивидуальный практикум с дифференцированным подходом.

Формы организации учебной деятельности: индивидуально-фронтальная.

Программно-дидактическое обеспечение:

  • Оборудование: ПК, проектор, интерактивная доска.
  • Программное обеспечение: Turbo Pascal, Power Point.
  • Презентация по данной теме: Задачи по программированию
  •  Практическая работа: программы на языке Паскаль и задания в тетрадях

 План урока:

  1. Организационный момент (1 мин)
  2. Повторение (3 мин) + устная проверочная (4 мин)
  3. Совместное решение задач  (9 мин)
  4. Физминутка (1 мин)
  5. Практическая работа  (20 мин)
  6. Подведение итогов (1 мин)

Ход урока

 

1.      Орг. момент. Тема, цель, эпиграф урока«Решение задач — специфическое достижение разума, разум же особый дар, которым наделен человек»                         (Дж. Пойа).

2. Повторение: (см.слайды)+ устная проверочная (4 мин)

Учитель задает вопросы: 

1). Из каких разделов состоит программа на языке Паскаль? (Раздел заголовка, раздел описаний, раздел операторов). 

2). С какого служебного слова начинается программа? (Program) 

3). Как описываются переменные? (Var список переменных: тип переменных). 

4). С чего начинается основная программа? (Begin) 

5). Как записывается 
оператор вывода? (Writeln (‘текст’, список переменных)) 

6). Как записывается оператор ввода? (Readln(список переменных)) 

7). Как записывается оператор присваивания? (имя переменной := арифм. выражение) 

8). Чем заканчивается программа? (End.) 

3.        Совместное решение задач  (9 мин)

 

1.Задача. Даны три числа. Найти произведение этих чисел. (Найти сумму этих чисел)

2.Задача. Даны три числа. Найти произведение четных из них

3.Задача. Даны три числа. Найти сумму нечетных из них

4. задача.Определить какое из трех, введенных пользователем, чисел максимальное и вывести его на экран.

Описание переменных: 

В программе будет три переменные для чисел, вводимых пользователем: n1, n2, n3. Также для упрощения алгоритма введем четвертую переменную, в которую по ходу выполнения кода будет помещено максимальное значение: max.

Алгоритм решения задачи: 

1.      Сравнить первое и второе число (n1 и n2). Переменной max присвоить значение переменной, содержащей большее значение.

2.      Сравнить значение переменной max с третьим числом, введенным пользователем (n3). Если значение n3 окажется больше, чем max, то присвоить max значение третьего числа. Если же значение max окажется больше, то ничего не делать.

Программа на языке Паскаль: 

var

    a1, a2, a3, max: integer;

 

begin

    write ('Введите три числа: ');

    readln (a1, a2, a3);

 

    if a1 >= a2 then

        max := a1

    else

        max := a2;

 

    if a3 > max then

        max := a3;

 

    writeln ('Максимальное из них: ', max);

 

readln

end.

Примечания: 

Три числа не обязательно могут быть разными. Достаточно предусмотреть вариант равенства значений только в первом операторе if.

4.Физминутка

5. Практическая работа

I группа – за компьютеры – набрать и провести отладку программы 4 задачи

II группа – решение задач по программированию типов С1 ,В2, В5, ЕГЭ по информатике

С1 Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.

var x: real;

begin

  readln(x) ;

  if x>l then

    if x>=7 then

      if x>13 then

        write('не принадлежит')

      else

        write('принадлежит')

end.

Последовательно выполните следующее.

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Границы (точки -5, 1, 7 и 13) принадлежат заштрихованным областям.

Область

Условие 1

(x>1)

Условие 2

(х>=7)

Условие 3

(х>13)

Программа выведет

Область обрабатывается верно

А

 

 

 

 

 

В

 

 

 

 

 

С

 

 

 

 

 

D

 

 

 

 

 

Е

 

 

 

 

 

В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)

 

Решение: Сразу замечаем, что в программе else относится к последнему оператору if. Обратите внимание, что второе условие проверяется в приведенной программе только тогда, когда истинно первое, а третье – только тогда, когда истинны первые два. В остальных ячейках (если условие не проверяется) нужно ставить прочерк:

Область

Условие 1

(x>1)

Условие 2

(х>=7)

Условие 3

(х>13)

Программа выведет

Область
обрабатывается
верно

А

нет

 

 

В

нет

 

 

С

да

нет

 

 

D

да

да

нет

 

 

Е

да

да

да

 

 

Программы выводит какой-то ответ только тогда когда истинны первые два условия; в этом случае ответ зависит от истинности третьего условия:

Область

Условие 1

(x>1)

Условие 2

(х>=7)

Условие 3

(х>13)

Программа выведет

Область
обрабатывается
верно

А

нет

нет

В

нет

нет

С

да

нет

нет

D

да

да

нет

принадлежит

да

Е

да

да

да

не принадлежит

да

Нужная область представляет собой объединение двух областей, которые описываются двойными неравенствами

     -5 <= x <= 1   и          7 <= x <= 13

Поскольку в Паскале двойные неравенства использовать нельзя (а в некоторых языках, например, в школьном алгоритмическом языке системы КуМир – можно!), заменяем их на сложные условия с логической операцией «И» (and):

     (-5 <= x) and (x <= 1)

(7 <= x) and (x <= 13)

Для объединения областей два эти условия нужно объединить с помощью логической операции «ИЛИ» (or). Таким образом, получаем такое решение:

if (-5 <= x) and (x <= 1) or

   (7 <= x) and (x <= 13) then

     write('принадлежит')

else write('не принадлежит');

Здесь учтено, что логическая операция «ИЛИ» имеет более низкий приоритет, чем «И», и поэтому выполняется последней.

В2. (базовый уровень, время – 2 мин) (Тема: Оператор присваивания в языке программирования)

Определите значение переменной c после выполнения следующего фрагмента программы.

a := 5;

a := a + 6;

b := –a;

c := a – 2*b;

Решение:

1)      для решения нужно использовать «ручную прокрутку» программы, то есть, выполнить вручную все действия

2)      наиболее удобно и наглядно это получается при использовании таблицы, где в первом столбце записаны операторы программы, а в остальных показаны изменения переменных при выполнении этих операторов

3)      здесь используются три переменные: a, b, c; до выполнения программы их значения нам неизвестны, поэтому ставим в  таблице знаки вопроса:

 

a

b

c

 

?

?

?

4)      после выполнения оператора a := 5; изменяется значение переменной a:

 

a

b

c

 

?

?

?

a := 5;

5

 

 

5)      оператор a := a + 6; означает «вычислить значение выражения a + 6 используя текущее значение a (равное 5), и записать результат обратно в переменную a»; таким образом, новое значение  равно 5 + 6 = 11:

 

a

b

c

 

?

?

?

a := 5;

5

 

 

a := a + 6;

11

 

 

6)      следующий оператор, b := -a; изменяет значение переменной b, записывая в нее –a; учитывая, что в a записано число 11, находим, что b будет равно –11:

 

a

b

c

 

?

?

?

a := 5;

5

 

 

a := a + 6;

11

 

 

b := –a;

 

–11

 

7)      последняя команда, c := a – 2*b, изменяет значение переменной c; при текущих значениях  a = 11 и b = –11 результат выражения  равен 11 – 2*(–11) = 33, это число и будет записано в переменную c:

 

a

b

c

 

?

?

?

a := 5;

5

 

 

a := a + 6;

11

 

 

b := –a;

 

–11

 

c := a – 2*b;

 

 

33

8)      таким образом, правильный ответ – 33.

Возможные ловушки и проблемы:

·    нельзя забывать про знак переменных и про то, что «минус на минус дает плюс»

B5 (базовый уровень, время – 2 мин) (Тема:  Анализ программы.)

Определите, что будет напечатано в результате работы следующего фрагмента программы:

var k, s: integer;

begin

  s:=0;

  k:=0;

  while s < 1024 do begin

    s:=s+10;

    k:=k+1;

  end;

  write(k);

end.

 Решение:

1)      из программы видно, что начальные значения переменных k и s равны нулю

2)      цикл заканчивается, когда нарушается условие s < 1024, то есть количество шагов цикла определяется изменением переменной s

3)      после окончания цикла выводится значение переменной k

4)      таким образом, задача сводится к тому, чтобы определить число шагов цикла, необходимое для того, чтобы значение s стало не меньше 1024

5)      с каждым шагом цикла значение s увеличивается на 10, а значение k – на единицу, так что фактически k – это счётчик шагов цикла

6)      поскольку s увеличивается на 10, конечное значение s должно быть кратно 10, то есть это 1030 > 1024

7)      для достижения этого значения переменную s нужно 103 раза увеличить на 10, поэтому цикл выполнится 103 раза

8)      так как k – это счётчик шагов цикла, конечное значение k будет равно 103

9)      Ответ:  103.

Возможные ловушки и проблемы:

·    можно перепутать переменную, которая выводится на экран (внимательно смотрим на оператор вывода)

B6 (базовый уровень, время – 2 мин)

Тема:  рекурсивные алгоритмы.

Что нужно знать:

·    рекурсия – это приём, позволяющий свести исходную задачу к одной или нескольким более простым задачам того же типа

·    чтобы определить рекурсию, нужно задать

o   условие остановки рекурсии (базовый случай или несколько базовых случаев)

o   рекуррентную формулу

·    любую рекурсивную процедуру можно запрограммировать с помощью цикла

·    рекурсия позволяет заменить цикл и в некоторых сложных задачах делает решение более понятным, хотя часто менее эффективным

·    существуют языки программирования, в которых рекурсия используется как один из основных приемов обработки данных (Lisp, Haskell)

Пример задания:

Алгоритм вычисления значения функции F(n), где n – натуральное число,

задан следующими соотношениями:

F(1) = 1

F(n) = F(n–1) * n, при n > 1

Чему равно значение функции F(5)?

В ответе запишите только натуральное число.

Решение:

1)      используя заданную рекуррентную формулу, находим, что

F(5) = F(4) * 5

2)      применив формулу еще несколько раз, получаем

F(5) = F(3) * 4 * 5 = F(2) * 3 * 4 * 5 = F(1) * 2 * 3 * 4 * 5

3)      мы дошли до базового случая, который останавливает рекурсию, так как определяет значение F(1) = 1

4)      окончательно F(5) = 1 * 2 * 3 * 4 * 5 = 120

5)      ответ: 120.

6.Подведение итогов

Использованные материалы:  

Сайт учителя информатики Константина Полякова: преподавание, наука и жизнь

 Автор/создатель: Поляков К.Ю.

 http://kpolyakov.narod.ru

 

 

Сайт учителя информатики Дмитрия Тарасова

http://videouroki.net  ;  http://srclick.ru/click/c2001hji1uhVAj64ce64yFu4Qps

 

Подготовка к ЕГЭ по информатике в режиме online

http://ege.yandex.ru/informatics/

 

Образовательный портал «РЕШУ ЕГЭ» Дмитрия Гущина

http://soc.reshuege.ru/

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Конспект урока информатики в 11 классе «Решение задач по программированию»" Смотреть ещё 4 800 курсов

Методические разработки к Вашему уроку:

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Общая характеристика урока:

  1. В соответствии с календарно-тематическим планированием и предварительному замыслу и плану тема данного урока «Решение задач по программированию» из раздела «Повторение пройденного по теме «Алгоритмизация и программирование»» На раздел дается 10 часов, это второй урок.
  2. Цель урока: комплексное применение полученных знаний по программированию при решении задач в среде Turbo Pascal

Программно-дидактическое обеспечение:
Оборудование: ПК, проектор, интерактивная доска.

ПО: турбо Паскаль, Power Point.

Презентация по данной теме: Задачи по программированию

Практическая работа: программы на языке Паскаль и задания в тетрадях.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 806 680 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.03.2013 4392
    • DOCX 60.8 кбайт
    • 42 скачивания
    • Рейтинг: 2 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Садыкова Лариса Хоснуловна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Садыкова Лариса Хоснуловна
    Садыкова Лариса Хоснуловна
    • На сайте: 11 лет и 5 месяцев
    • Подписчики: 3
    • Всего просмотров: 7924
    • Всего материалов: 3

Оформите подписку «Инфоурок премиум»

Вы сможете бесплатно проходить любые из 4800 курсов в нашем каталоге.

Перейти в каталог курсов

Мини-курс

Современные методики базальной стимуляции и развивающего ухода для детей с тяжелыми множественными нарушениями развития

6 ч.

699 руб. 399 руб.
Подать заявку О курсе

Мини-курс

Продвижение экспертной деятельности: от личного сайта до личного помощника

6 ч.

699 руб. 399 руб.
Подать заявку О курсе
  • Сейчас обучается 24 человека из 20 регионов

Мини-курс

Современные направления в архитектуре: архитектурные решения гениальных изобретателей

6 ч.

699 руб. 399 руб.
Подать заявку О курсе
Смотреть ещё 4 800 курсов