Оператор множественного выбора CASE
Урок является продолжением изучения темы множественного выбора на языке Pascal. Предназначен как для изучения на уроках, так и во время проведения элективных курсов.
Вид: урок-презентация с применением современных технологий.
Технология: информационная.
Время проведения: 40 минут.
Оборудование: компьютерный класс, мультимедийные устройства.
Оглавление
Цель урока:
Познакомить учащихся со способами организации в программах ветвления на три и более рукавов (ветвей).
Задачи:
- Обучающие – познакомить учеников с использованием команды множественного выбора CASE; привести примеры.
- Развивающие — развитие умения преодолевать трудности при выполнении заданий самостоятельной работы, развитие логического мышления, памяти, внимания, навыков коммуникативной работы в группах.
- Воспитательные — воспитание аккуратности, ответственности за свою работу в коллективе, уважительного отношения к мнению одноклассников, уметь работать самостоятельно, выделять главное, сравнивать, делать выводы, развитие познавательного интереса, логического мышления.
Подготовка к уроку:
- Подбор изображений для слайдов.
- Подбор и набор текста и задач.
- Составление и оформление презентации.
План урока:
- Организационный момент.
- Мотивационное начало урока.
- Изложение нового материала. Составление учащимися краткого конспекта нового материала.
- Закрепление изученного материала.
- Домашнее задание.
- Итог урока.
Ход урока
Организационный момент. Психологический настрой класса. Приветствие, выявление отсутствующих, проверка готовности учащихся к уроку. Проверка домашнего задания осуществляется по следующим вопросам:
- Какое минимальное количество разделов может быть в программе в Turbo Pascal? Назовите их. (Один — раздел операторов).
- Назовите основные типы данных и соответствующие им стандартные имена, которые мы использовали на прошлом уроке. (Целочисленный тип — INTEGER, вещественный тип — REAL, логический — BOOLEAN.)
- Укажите, какие операции деления возможны над данными целочисленного типа. Поясните их результат и назовите соответствующее стандартное имя, используемое в программе. (а. MOD; б. DIV.)
- Укажите типы данных, в которых нет возможности ввода данных с помощью оператора READ. (Логический тип данных — BOOLEAN.)
- Перечислите операторы, которые могут использоваться для организации линейных алгоритмов. (BEGIN, END, READ).
- Назовите операторы для программ с разветвляющейся конструкцией. (IF … THEN … ELSE.)
Сообщение о том, чем будем заниматься на уроке. Сообщение учащимся плана занятия и его цель для учащихся
Мотивационное начало урока. Достаточно часто при составлении программ необходимо сделать выбор из достаточно большого количества вариантов. Команду IF в данном случае использовать не рационально. И тут на помощь к программистам приходит команда множественного выбора CASE.
Изложение нового материала. Составление учащимися краткого конспекта нового материала.
Здесь ты найдешь уроки, исследования, интересные факты и вдохновение для творчества.
До сих пор, изучая ветвление в алгоритмах, мы в основном рассматривали случаи ветвления на два рукава. Сегодня наша задача – познакомиться со способами организации в программах ветвления на три и более рукавов.
Один из способов реализации ветвления на несколько рукавов – проверка условий до тех пор, пока одно из них не окажется истинным, выполнение предусмотренных этим условием действий и выход из ветвления.
Структура оператора выбора такова:
case <переменная> of
<значение1>:<действия1>;
<значение2>:<действия2>;
<значение3>:<действия3>;
……………………………………………………………………;
else <действия 4>;
end;
Оператор выбора работает следующим образом. В зависимости от того, какое значение принимает переменная, выполняется тот или иной блок действий. В случае если переменная не принимает ни одно из перечисленных значений, “работает” ветвь “ELSE” Но эта ветвь может и отсутствовать, в этом случае просто ничего не выполняется.
У множественного ветвления есть ограничения; в роли переменной может выступать только переменная порядкового типа. Но есть и положительные стороны — в качестве значений можно указывать целый диапазон.
Давайте рассмотрим на примере преимущества оператора case на примере следующей программы.
Задача 1. Приведите введенное пользователем число от 0 до 9 к его словесному представлению.
Сначала рассмотрим данную задачу с использованием оператора if:
program chislo;
var n : shortint; {-128..127}
begin
write(‘Введи число: ‘);
readln(n);
if n=0 then write(‘Нуль’)
else if n=1 then write(‘Один’)
else if n=2 then write(‘Два’)
else if n=3 then write(‘Три’)
else if n=4 then write(‘Четыре’)
else if n=5 then write(‘Пять’)
else if n=6 then write(‘Шесть’)
else if n=7 then write(‘Семь’)
else if n=8 then write(‘Восемь’)
else if n=9 then write(‘Девять’)
else write(‘Это не цифра’);
end;
Теперь с помощью оператора case:
program chislo;
var n : shortint;
begin
write(‘Введи число: ‘);
readln(n);
case n of
0: write(‘Нуль’);
1: write(‘Один’);
2: write(‘Два’);
3: write(‘Три’);
4: write(‘Четыре’);
5: write(‘Пять’);
6: write(‘Шесть’);
7: write(‘Семь’);
8: write(‘Восемь’);
9: write(‘Девять’);
else write(‘Это не цифра’);
end;
end;
Сделаем выводы. (Как видно из приведённых примеров, использование оператора case очень эффективно. Он упрощает решение разветвляющихся задач, сокращает затраты на написание кода, и упрощает понимание его). Давайте разберем еще один пример.
Задача 2. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Предусмотреть ошибку ввода.
program nomermesaca;
var x:byte;
begin
writeln(‘ введите номер месяца ‘); readln(x); Case x of
1,2,12:writeln (‘зима’);
3,4,5:writeln (‘весна’);
6,7,8:writeln (‘лето’);
9,10,11:writeln (‘осень’)
else
writeln (‘ошибка’);
end;
end.
Я думаю до readln(x); всё понятно. Теперь разбираем непосредственно часть программы с оператором-”case”.
Допустим, мы ввели число 5. Так вот программа берет нашу переменную x, которая в нашем случае равняется пяти, и ищет нашу пятёрку среди тех данных, которые мы ввели между “Case x of… и … Else writeln (‘ошибка’);”.
Пройдя первую строку программа нужной пятёрки не нашла и, перейдя на вторую, нужная пятёрка была найдена и в соответствии с командой, которую мы задали в этом случае программа выводит на экран слово «Весна».
Если бы мы ввели число большее, чем 12,то программа бы выдала нам следующее: «Ошибка»
Закрепление изученного материала. Применение знаний на практике и формирование практических умений и навыков.
Учащимся предлагаются несколько задач, которые они должны составить на компьютере:
Задача 3. Составить программу, имитирующую работу своеобразного калькулятора.
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.
Задача 4. Написать программу, которая в зависимости от введённого числа выводила бы на экран: если 1, 2, 3, 4, 5 то ‘один’, если 6, 7, 10, 15 то ‘два’, если 8 то ‘три’, если 16, 17, 18, 19, 20, 22, 25 то ‘четыре’. Иначе вывести на экран ‘ошибка’.
program primer;
var n : integer;
begin
write(‘Введите число: ‘);
readln(n);
case n of
1..5: write(‘один’);
6, 7, 10, 15: write(‘два’);
8: write(‘три’);
16..20, 22, 25: write(‘четыре’);
else write(‘ошибка’);
end;
end.
Выявление пробелов в знаниях учащихся и их ликвидация. Беседа.
- С помощью каких операторов можно организовать многовариантное ветвление? (IF…THEN…ELSE, CASE…OF). Ставится ли перед ELSE ;? (Нет)
- Какой тип может иметь переменная, выступающая в роли параметра в операторе выбора CASE (Перечисляемый).
- Может ли отсутствовать ELSE в операторе выбора? (Да)
- Как “работает” оператор выбора? (Оператор выбора работает следующим образом. В зависимости от того, какое значение принимает переменная выполняется тот или иной блок действий. В случае если переменная не принимает ни одно из перечисленных значений, “работает” ветвь “else” Но эта ветвь может и отсутствовать, в этом случае просто ничего не выполняется.)
Домашнее задание.
Составить программу по следующему условию.
В некотором учебном заведении действуют следующие правила приема. Абитуриенты сдают три экзамена. Если они набирают не менее 13 баллов, то это дает право поступить на дневное отделение, от 10 до 12 — вечернее, от 8 до 9 — заочное и ниже 8 баллов — отказ в приеме на учебу. Записать программу, которая в зависимости от суммы набранных баллов сообщает абитуриенту его права на поступление.
Итог урока.
Сегодня на уроке мы повторили структуру программы, типы данных, инструкции ввода и вывода, логические выражения, условный оператор, познакомились с организацией многовариантного ветвления.
предыдущие:
- Операционная система Linux
- Управление компьютером
- Задания на компьютерный марафон по информатике в 8 классе
- История развития вычислительной техники
- Архитектура персонального компьютера