Тип урока: изучение нового материала.
Цель урока: познакомить учащихся с условным оператором и применением его при составлении программ на языке программирования Паскаль.
Задачи урока:
- Образовательные:
- познакомить учащихся с основными понятиями по данной теме;
- учить записывать простые и сложные условия команды ветвления;
- учить составлять программы на языке Паскаль по блок-схеме разветвляющегося алгоритма;
- учить составлять программы с ветвлением на языке Паскаль;
- продолжить формирование умений учащихся находить ошибки в программах, предвидеть результат выполнения программы.
- Развивающие:
- развивать у учащихся умения сопоставлять, анализировать, выделять главное, существенное, обобщать, формулировать выводы;
- развивать у учащихся познавательный интерес и творческие способности.
- Воспитательные:
- формировать коммуникативные компетенции учащихся через работу в группах, воспитания уважения друг к другу, умения слушать;
- воспитание информационной культуры.
Изучив тему урока, учащиеся должны:
- знать понятие условия, формат записи полного и неполного условного оператора;
- уметь правильно записывать простые и сложные логические условия для решения конкретных задач;
- составлять программы на языке Паскаль по блок-схеме разветвляющегося алгоритма;
- применять условный оператор при составлении программы для решения задач;
- уметь находить ошибки в составленной программе.
Возраст учащихся: IX класс.
Средства обучения:
- технические:
- компьютерный класс;
- мультимедийный проектор;
- экран;
- программные:
- система программирования Турбо Паскаль 7.0;
- презентация, созданная средствами программы Microsoft PowerPoint (Презентация);
- раздаточные материалы:
- карточки для работы в группах (Приложение);
ХОД УРОКА
I. Организационный момент
На прошлых уроках мы научились составлять линейные программы на языке Паскаль. Сегодня мы продолжим изучать операторы языка программирования Паскаль.
II. Актуализация знаний
Составим программу для решения следующей задачи: Из двух чисел А и В найти большее и вывести его на экран.
(Учащиеся предлагают свои варианты и совместно с учителем делают вывод, что составить линейную программу для решения данной задачи нельзя.)
Действительно, в рассмотренных ранее программах все операторы выполнялись последовательно один за другим в том порядке, в каком они были записаны. В данной задаче необходимо в зависимости от условия выполнить разные действия: если А > В, то напечатать на экране число А, а, если B > A, то – число В. Получаем, что для решения данной задачи необходимо составить разветвляющий алгоритм. Команды, с помощью которых записываются разветвляющиеся алгоритмы, называются командами ветвления. Команде ветвления в Паскале соответствует условный оператор, с которым мы сегодня познакомимся.
Сформулируйте цели урока. (Ответы учащихся: узнать, как записывается условный оператор, как записывается условие, научиться решать задачи с использованием условного оператора)
III. Объяснение нового материала
Условный оператор реализует «ветвление», т.е.
изменяет порядок выполнения операторов в
зависимости от истинности или ложности
некоторого условия.
Условный оператор может иметь две формы
(структуры) – полную или неполную.
Полная форма условного оператора имеет вид:
IF <условие> THEN <оператор1> ELSE <оператор2>;
Условие – это логическое выражение, которое
может быть записано в операторе явно или
вычислено в программе. Для записи простых
условий используются операции отношения:
< (меньше), > (больше), = (равно), < = (меньше или
равно), >= (больше или равно), < > (не равно).
Выполнение условного оператора начинается с
вычисления значения логического выражения,
записанного в условии. Если (IF) условие
истинно, тогда (THEN) выполняется
оператор1, иначе (ELSE) выполняется
оператор2.
Составной условный оператор воспринимается
компилятором Паскаля как один оператор, поэтому
перед ELSE не ставится точка с запятой.
Для наглядности программы операторы, следующие
за словами THEN и ELSE можно писать на следующей
строке.
Если по условию задачи после THEN или ELSE необходимо
выполнить больше одного оператора, то тогда
используют операторные скобки BEGIN…END
IF <условие> THEN
BEGIN
<оператор 1>;
<оператор 2>;
…
<оператор n>;
END
ELSE
BEGIN
<оператор 1>;
<оператор 2>;
…
<оператор n>;
END;
Составим программу для задачи, записанную в начале урока.
PROGRAM zadacha1;
VAR A,B:INTEGER; {описываем переменные А и В целыми числами}
BEGIN
WRITE(‘A=’); {Вводим с клавиатуры числа А и В}
READLN(A);
WRITE(‘B=’);
READLN(B);
WRITE (‘Большее число : ‘);
IF A>B THEN WRITELN (A) {Если A>B , то выводим на экран А, иначе выводим В}
ELSE WRITELN (B);
END.
Если в случае невыполнения условия (условие ложно) никаких действий выполнять не надо, то используют неполную форму условного оператора:
IF <условие> THEN <оператор1>
Например, для решения задачи: удвоить число Х, если оно положительное, можно записать следующее условие:
IF X>0 THEN X:=X*2;
В качестве оператора в команде ветвления может быть другой условный оператор. В этом случае получаем вложенные ветвления. Рассмотрим на примере.
Задача. Составить программу для решения квадратного уравнения ax2 + bx + c = 0.
Составим алгоритм решения задачи.
Программа:
PROGRAM zadacha2;
VAR a,b,c,D,x,x1,x2:REAL; {описываем переменные}
BEGIN
WRITE(‘a=’); {Вводим с клавиатуры коэффициенты уравнения}
READLN(a);
WRITE(‘b=’);
READLN(b);
WRITE(‘c=’);
READLN(c);
D:= b*b – 4*a*c; {Вычисляем дискриминант}
WRITE (‘Корни уравнения: ‘);
{Вычисляем корни уравнения в зависимости от дискриминанта}
IF D>0 THEN
BEGIN
x1:=(–b+SQRT(D))/(2*a);
x1:=(–b–SQRT(D))/(2*a);
WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2);
END
ELSE
IF D=0 THEN
BEGIN
x:= –b/(2*a);
WRITELN (‘x= ‘,x:5:2);
END
ELSE
WRITELN (‘Корней нет’);
END.
Условие может быть записано и сложным логическим выражением. В сложных логических выражениях используются логические операции: and (И), or (ИЛИ), not (НЕ). Отношения, связываемые логическими операциями, заключаются в скобки. Например, требуется определить, есть ли среди чисел a, b, c хотя бы одно равное нулю. Для этого можно составить следующий условный оператор:
IF (a=0) OR (b=0) OR (c=0) THEN WRITE(‘YES’) ELSE WRITE(‘NO’);
Также в сложном условии могут быть использованы и мультипликативные операции:
mod – остаток от деления, div – целая часть от
деления.
Например, требуется определить, является ли
число а – нечетным.
IF a MOD 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);
Рассмотрим задачу со сложным условием.
Задача. Написать программу, проверяющую, принадлежит ли число интервалу (0;5].
Решение. Обозначим за х число, вводимое с клавиатуры пользователем. Принадлежность числа х заданному интервалу определяется следующим условием: 0<х<=5.
PROGRAM zadacha3;
VAR x:REAL; {описываем переменную х}
BEGIN
WRITE(‘x=’); {Вводим с клавиатуры x}
READLN(x);
{Проверяем принадлежность х заданному интервалу}
IF (x>0) and (x<=5) THEN WRITELN (‘YES’) ELSE WRITELN (“NO’);
END.
IV. Закрепление
Работа в группах.
Работа по карточкам. (Приложение)
V. Подведение итогов урока. Постановка домашнего задания
Проверка результатов работы в группах. Выставление оценок.
Домашнее задание: конспект, решение задач:
- Дано целое число. Определить, является ли оно кратным 5 и 10.
- Написать программу, определяющую, принадлежит ли точка (x,y) графику функции y = ax2 + bx + c.
Литература, использованная при подготовке к уроку:
- Семакин И.Г. Информатика. Базовый курс: Учебник для 9 класса/ И.Г. Семакин, Л.А. Залогова, С.В. Русаков, Л.В. Щестакова. – 3-е изд. – М.: БИНОМ. Лаборатория знаний, 2007. – 359с.: ил.
- Кузнецов А.А. Основы информатики. 8-9 кл.: Учеб. для общеобразоват. учреждений/ А.А.Кузнецов, Н.В.Апатова. – 5-е изд., стереотип. – М.: Дрофа, 2003. – 176с.: ил.
- Кузнецов А.А. Информатика: сб. типовых задач для 8-9 кл./ А.А.Кузнецов, С.А.Бешенков, Е.А.Ракитина. – М.: Просвещение, 2006. – 159с.: ил.
- Златопольский Д.М. Я иду на урок информатики: Задачи по программированию. 7-11 классы: Книга для учителя. – М.: Издательство «Первое сентября», 2002. – 208с.: ил.