Тема урока: "Организация множественного ветвления в Turbo Pascal"

Разделы: Информатика


Цели:

Образовательные:

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

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

  • развитие мышления, необходимого образованному человеку для полноценного функционирования в современном обществе;
  • развитие элементов творческой деятельности как качеств мышления — интуиции, смекалки;
  • развитие мировоззрения;
  • развитие навыков устной и письменной речи;
  • развитие умения “учиться”: использовать знания, умения и навыки в учебной деятельности;
  • развитие памяти;
  • развитие критического мышления, навыков групповой самоорганизации, умения вести диалог;
  • развитие эстетических представлений и художественного вкуса учащихся;
  • развитие абстрактного и логического мышления;
  • умение работать и в паре;
  • формирование ответственного отношения к учебе, аккуратность;
  • умение выделять из класса задач задачи, решаемые с использованием конкретного алгоритма;
  • умение аргументировано отстаивать свою точку зрения.

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

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

Задачи:

Образовательные:

  • повторить: алфавит языка Turbo Pascal, структуру программы на языке Turbo Pascal, простые типы данных в языке программирования Turbo Pascal, логические операции и их приоритет, совместимость типов данных в Turbo Pascal, понятия “ветвление”, “условный оператор”, “оператор присваивания”;
  • активизировать знания по теме “Организация ветвления на языке Turbo Pascal” для решения задач по данной теме;
  • закрепить умения и навыки по работе с разветвляющимися конструкциями алгоритма и условного оператора программы, написанной на языке Turbo Pascal;
  • научить решать задачи по теме “Организация многовариантного ветвления на языке Turbo Pascal;
  • ввести понятие “множественного ветвления”;
  • познакомить с оператором выбора CASE.

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

  • развивать способности правильно формулировать свои мысли в процессе обобщения изученного (подведение итогов, актуализации знаний);
  • развивать умение вести учебный диалог, отстаивать свою точку зрения при решении задач;
  • развивать критическое мышление при анализе и оценке эффективности использования различных видов ветвления в программе;
  • развитие мышления, необходимого образованному человеку для полноценного функционирования в современном обществе, смекалки и интуиции путем решения целого ряда задач;
  • развитие навыков устной и письменной речи;
  • развитие “учиться”: использовать знания, умения и навыки, полученные на уроках при выполнении практического задания;
  • развитие навыков взаимоконтроля при проверке домашних заданий;
  • формирование ответственного отношения к учебе, аккуратность при выполнении практического задания и ведении тетради;
  • умение выделять из класса задач задачи, решаемые с использованием алгоритма с ветвлением.

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

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

Оборудование:

  • проектор,
  • экран,
  • персональный компьютер.

Программное обеспечение: OS Windows 2000/XP, 1С “Математика и программирование”.

Методическое оснащение: презентация<Приложение2>, опорный конспект<Приложение1> (на каждого учащегося)

1. Организационный момент .

Время:15 минут

Начало — больше половины целого

Аристотель

а) Организация начала урока

Цели данного этапа: Психологический настрой класса.

Метод: объяснение

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

Сообщение учащимся плана занятия и его цель для учащихся

Цель: повторить ранее пройденный, в рамках изучаемого раздела, учебный материал, познакомиться с организацией множественного ветвления в Turbo Pascal, и научиться определять необходимость использования того условного оператора и оператора выбора для решения задачи.

План:

  1. Проверка домашнего задания.
  2. Организация многовариантного ветвления с использованием оператора IF…THEN…ELSE
  3. Организация многовариантного ветвления с использованием оператора CASE…
  4. Выполнение практического задания

б) Проверка домашнего задания, постановка цели урока.

Цели данного этапа: Проверка домашнего задания

Метод: беседа

Взаимный контроль выполнения домашнего задания

На дом учащимся предлагался сканворда, в котором необходимо было найти как изученные операторы языка программирования Pascal, так и еще неизвестные, и ответить на дополнительные вопросы. Слова в сканворде могут располагаться как по горизонтали (справа налево или слева направо) так и по вертикали (снизу вверх или сверху вниз) и змейкой. В данном сканворде нельзя было использовать одну букву в разных словах.

Учащиеся обмениваются тетрадями и проверяют домашнее задание, активно обсуждая, его друг с другом и учителем. Не обнаруженные никем из ребят слова учитель не называет, но помогает найти их на завершающем этапе — при работе над дополнительными вопросами. Так, после ответа на некоторые из них можно спросить: не зашифрованы ли соответствующие (еще не найденные) слова-ответы в сканвордной сетке?

Ответы на вопросы домашнего задания рассматриваются частично при разгадывании сканворда, а после урока проверяются учителем.

Образец выполнения домашнего задания:

Сканворд Ответ на сканворд
B W C O I F C R M Изученные операторы:

AND, BEGIN, BOOLEAN, CONST, DIV, ELSE, END, IF, INTEGER, MOD, NOT, OR, READ, READLN, REAL, THEN, WRITELN;

Не изученные операторы:

CASE, OF.

E R I N T R A E O
G I T S H E S A D
E N E T E A E D O
N N L B N D N L R
D V A O E L S E V
I E G O L E A N A
N T E R R E A L R
D I V A N D N O T

 

Вопросы Ответы
Какое минимальное количество разделов может быть в программе в Turbo Pascal? Назовите их. Один — раздел операторов
Назовите основные типы данных и соответствующие им стандартные имена, используемые в сканворде. Целочисленный тип — INTEGER, вещественный тип — REAL, логический — BOOLEAN.
Укажите, какие операции деления возможны над данными целочисленного типа. Поясните их результат и назовите соответствующее стандартное имя, используемое в программе. а. MOD; б. DIV.
Укажите типы данных, в которых нет возможности ввода данных с помощью оператора READ. Логический тип данных  — BOOLEAN.
Назовите операцию, которая в целочисленном типе данных невозможна, а в вещественном типе данных имеет место. Объясните причину невозможности. Обычное деление. Данная операция невозможна над данными целочисленного типа, так как в результате его могут получиться дробные числа, а целочисленному типу могут быть присвоены только целые значения переменных.
Перечислите операторы, которые могут использоваться для организации линейных алгоритмов. BEGIN, END, READ.
Назовите операторы для программ с разветвляющейся конструкцией. IF ... THEN ... ELSE.
Укажите форматы условного оператора, нарисуйте их блок-схемы. Перечислите используемые операторы для каждой из форм. Неполная — IF ... THEN,

полная  — IF ... THEN ... ELSE.

Подготовка учащихся к восприятию нового учебного материала, т. е. актуализация знаний и умственных умений.

Цель данного этапа: подготовка учащихся к восприятию нового учебного материала

Метод: беседа

Учащимся отвечают на тестовые вопросы (см. презентацию)

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

И ответить на вопрос: Нет ли ошибок в этой программе?

Writeln(‘y= ’,y);  
Var x, y: extended;  
BEGIN  
END.  
Program EvalY;  
Writeln(‘Введите x’);  
Readln(x);  
If (x>0) then y:=sin(2*x) else y:=(1-2*sin(x2));  
If (x<0) then y:=sin(2*x) else y:=(1-2*sin(x2));  
If (x>0) then y:=(1-2*sin(x2)) else y:=sin(2*x);  
If (x<0) then y:=(1-2*sin(x2)) else y:=sin(2*x);  

Ответ: 5, 2, 3, 6, 7, 8, 4. Ошибка в возведении x в квадрат.

Program EvalY;

Var x, y: extended;

BEGIN

Writeln(‘Введите x’);

Readln(x);

If (x>0) then y:=sin(2*x) else y:=(1-2*sin(sqr(x)));

Writeln(‘y= ’,y);

END.

2. Сообщение нового материала.

При изучении наук примеры полезнее, чем правила.

Исаак Ньютон

Время:11 (минут)

Метод: объяснение

Цель данного этапа: изложение нового учебного материала

До сих пор, изучая ветвление в алгоритмах, мы в основном рассматривали случаи ветвления на два рукава. Сегодня наша задача – познакомиться со способами организации в программах ветвления на три и более рукавов.

Один из способов реализации ветвления на несколько рукавов – проверка условий до тех пор, пока одно из них не окажется истинным, выполнение предусмотренных этим условием действий и выход из ветвления.

Рассмотрим решение следующей задачи по нахождению значения переменной , заданной следующим выражением: <Рисунок3>

Блок-схема решения этой задачи приведена на рисунке.

А соответствующая ей программа приведена ниже

Program Calculate_A;

Var a, x, y: integer;

BEGIN

Writeln(‘Введите x’); Readln(x);

If (x<0)

then a:=x+1

else if (x<10)

then a:=2*x

else a:=0;

Writeln(‘A = ’,a);

END.

Можно было бы составить эту программу и иначе:

Program Calculate_A1;

Var a, x, y: integer;

BEGIN

Writeln(‘Введите x’); Readln(x);

If (x<0) then a:=x+1;

If (x<10) and (x>0) then a:=2*x;

If (x>10) then a:=0;

Writeln(‘A = ’);

END.

Второй способ нагляднее, но в первом не делаются лишние проверки, в нем вообще не проверяется условие (x>10)!!!

Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора— выражения порядкового типа (любого из рассмотренных кроме REAL и SINGLE).

Структура оператора выбора такова:

case <переменная> of

<значение1>:<действия1>;

<значение2>:<действия2>;

<значение3>:<действия3>;

……………………………………………………………………;

else <действия 4>;

end;

Оператор выбора работает следующим образом. В зависимости от того, какое значение принимает переменная, выполняется тот или иной блок действий. В случае если переменная не принимает ни одно из перечисленных значений, “работает” ветвь “ELSE” Но эта ветвь может и отсутствовать, в этом случае просто ничего не выполняется.

У множественного ветвления есть ограничения; в роли переменной может выступать только переменная порядкового типа. Но есть и положительные стороны — в качестве значений можно указывать целый диапазон.

Составим программу, имитирующую работу своеобразного калькулятора.

Program Calc;

Var a, b, c: integer;

BEGIN

Writeln(‘Введите a’); Read(a);

Writeln(‘Введите b’); Read(b);

Writeln(‘Введите c‘); Read(c);

Case c of

1: Writeln(‘Сумма=‘, a+b);

2: Writeln(‘Разность=‘, a-b);

3: Writeln(‘Произведение=‘, a*b);

4: Writeln(‘Целая часть от деления=‘, a div b);

5: Writeln(‘Остаток от деления=‘, a mod b);

else

Writeln(‘Введен неизвестный номер операции’);

End;

END.

3. Применение знаний (упражнения).

Умение решать задачи – такое же практическое искусство, как умение плавать или бегать на лыжах. Ему можно научиться только путем подражания или упражнения.

Дъердъ Пойа

Время: 7 минут

Метод: практический

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

Ветвление в алгоритмах. Игра "Ежиные тропы"

Перед вами игра "Ежиные тропы", которая поможет на действующей модели освоить условно-логический оператор.

Цель игры – так настраивать условные операторы в блок-схеме алгоритма, чтобы ежики собирали как можно больше яблок.

В каждой попытке вам дается четыре яблока и четыре ежика. Каждый ежик имеет свой порядковый номер: 1, 2, 3 и 4 (этот номер мигает рядом с ежиком). Потрясите дерево, и упадут четыре яблока, каждое из которых, ударившись о землю, случайным образом расположится напротив одного из выходов блок-схемы (четыре синие стрелки). По команде "Собрать яблоки" ежики проходят по стрелкам по блок-схеме в соответствии с тем, истинное или ложное утверждение содержат условные блоки (очередной ежик побежит от условного блока по ветке "Да" или по ветке "Нет" соответственно). Но прежде чем нажать кнопку "Собрать яблоки", подумайте, какие цифры и какие знаки сравнения надо расставить в блоках условия, чтобы ежики собрали все яблоки (когда ежики побегут, вносить изменения вы уже не сможете). Если вам требуется заменить цифру – наведите курсор на поле с цифрой, которую вы хотите заменить, щелкните левой кнопкой мыши и нажмите на клавиатуре кнопку с соответствующей цифрой. Если нужно заменить знак сравнения – наведите на него курсор и щелкните левой кнопкой мыши; появится выпадающее меню с набором знаков сравнения; выберите необходимый знак, наведя на него курсор и щелкнув левой кнопкой мыши. Если условия приводят ежика к яблоку, ежик забирает его. Каждый ежик может унести только одно яблоко. Если условия приводят ежика к пустому месту, он убегает без яблока. Несобранные яблоки пропадают. После того как ежики убегают с экрана, можно позвать еще четырех ежиков, опять потрясти яблоню и заново настроить условные блоки. Результаты суммируются и отображаются в верхнем правом углу.

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

4. Проверка уровня усвоения знаний и умений.

Время: 3 минуты

Цель данного этапа: Выявление пробелов в знаниях учащихся и их ликвидация.

Метод: беседа

С помощью каких операторов можно организовать многовариантное ветвление? (IF…THEN…ELSE, CASE…OF).

Ставится ли перед ELSE ;? (Нет).

Какой тип может иметь переменная, выступающая в роли параметра в операторе выбора CASE (Перечисляемый).

Может ли отсутствовать ELSE в операторе выбора? (Да)

Как “работает” оператор выбора? (Оператор выбора работает следующим образом. В зависимости от того, какое значение принимает переменная выполняется тот или иной блок действий. В случае если переменная не принимает ни одно из перечисленных значений, “работает” ветвь “else” Но эта ветвь может и отсутствовать, в этом случае просто ничего не выполняется.)

5. Информация о домашнем задании.

Время: 2 минуты

Цель данного этапа: Пояснить содержание домашнего задания.

Метод: объяснение с элементами беседы

В некотором учебном заведении действуют следующие правила приема. Абитуриенты сдают три экзамена. Если они набирают не менее 13 баллов, то это дает право поступить на дневное отделение, от 10 до 12 — вечернее, от 8 до 9 — заочное и ниже 8 баллов — отказ в приеме на учебу. Записать программу, которая в зависимости от суммы набранных баллов сообщает абитуриенту его права на поступление.

6. Подведение итогов урока.

Время: 2 минуты

Цель данного этапа: Подвести итоги урока

Сегодня на уроке мы повторили структуру программы, типы данных, инструкции ввода и вывода, логические выражения, условный оператор в Turbo Pascal, познакомились с организацией многовариантного ветвления.