Урок № 9

Тема:  Оператор множественного выбора CASE

 

 Цели:

  1. Познавательная – познакомить учеников с использованием команды множественного выбора CASE; привести примеры.
  2. Развивающая – развивать логическое мышление.
  3. Воспитательная – воспитывать творческий подход к труду.

 

Ход урока.

I.                   Орг. Момент.

    II.      Мотивация учебной деятельности учеников

Достаточно часто при составлении программ необходимо сделать выбор из достаточно большого количества вариантов. Команду IF в данном случае использовать не рационально. И тут на помощь к программистам приходит команда множественного выбора CASE.

 

 III.      Объявление темы и ожидаемых результатов

После этого урока ученики смогут:

·        Рассказать о возможностях команды множественного выбора CASE;

·        Объяснить правила записи значений в этой команде;

·        Объяснить разницу между командой  IF и  CASE;

 

  IV.      Объяснение нового материала – презентация «Оператор множественного выбора».  Во время объяснения сопровождать показ слайдов демонстрацией работы в среде программирования Turbo Pascal;

·        Назначение  команды выбора;

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

1. Здесь селектор – проверяемое целое арифметическое, логическое или символьное выражение. Причем оно может принимать значения лишь некоторых типов, общим свойством для которых является то, что их значения известны точно. Поэтому, в частности, тип селектора не может быть вещественного типа (Real),

2. <Списки> представляют собой перечисления возможных значений выражения селектор.

При совпадении значения выражения хотя бы с одним из значений <списка> будет выполняться соответствующее <действие> и на этом выполнение команды выбора завершается.

 

 

<Списки> могут быть заданы следующими способами:

Вид списка 

 

Список, состоящий из одного значения

a

8

Список, содержащий перечисление значений

1, 4, 5

‘a’, ‘b’,’*’,’@’

Список, содержащий интервалы значений

1..5, 20..30

a..’z’

Список, содержащий смешанную форму представления значений

1 .. 5, 15, 55

a..’z’, ’A’, ’B’

 

 

Работу этого оператора можно проиллюстрировать следующим примером:

 

Пример 1. Составить программу, которая спрашивает у пользователя номер месяца и выводит соответствующее названия времени года. В случае, если пользователь укажет недопустимое число, программа должна вывести сообщение об ошибке «Ошибка ввода данных».

 

Ниже приведен рекомендованный вид экрана во время работы программы:

 

Введите номер месяца (число от 1 до 12) и нажмите <Enter>

-> 12

Зима

 

Program Pr;

Var month: Integer;

Begin

Writeln (‘Введите номер месяца (число от 1 до 12) и нажмите <Enter>’);

Read (month);

 Case month of

       1, 2, 12: Writeln(Зима’);

       3 ,4,5: Writeln(‘Весна’);

       6 ,7,8: Writeln(‘Лето’);

       9 ,10,11: Writeln (‘Осень’);

     Else Writeln (‘Ошибка ввода данных – число должно быть от 1 до 12’);

  End;

End.

 

 

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

 

1. Задача. Составить программу, вычисляющую стоимость междугородного телефонного разговора (цена одной минуты определяется по таблице). Исходными данными для  программы являются код города и продолжительность разговора. Ниже представлен рекомендуемый вид экрана во время работы программы:

 

Вычисление стоимости разговора по телефону.

Введите исходные данные:

Код города -> 812

Длительность (целое количество минут) ->  3

Город: Владивосток

Цена минуты:2.20 руб,

Стоимость разговора: 6.60 руб.

 

Город

Код

Цена минуты

(руб.)

Владивосток

     423

2,2

Москва

095

1,0

          Мурманск

815

1,2

         Самара

846

1,4

 

Program Pr_2;

Var k,t,s,c: Integer;

Begin

    Writeln ('Введите код города');

         Read (k);

        Writeln ('Введиде стоимость 1 минуты');

         Read (c);

Writeln ('Сколько минут разговаривали?');

Read (t);

 

 Case k of

      423: Writeln('Стоимость разговора с Владивостоком=', c* t);

 

        095:   Writeln(' Стоимость разговора с Mосквой=', c* t);

       815 : Writeln(' Стоимость разговора с Мурманском=', c* t);

       846:  Writeln(' Стоимость разговора с Самарой=', c* t);

     Else Writeln ('Ошибка ввода данных – такой город не заказывали');

  End;

End.

 

2. Самостоятельная работа.

Задача 2. Ввести возраст. Определение кол-ва лет.

 

program y;

uses Crt;

var k : integer ;

    m : string ;

begin

    clrscr;

    write('‚введите ваш возраст: ');

    readln(k);

    case k of

     1,21,31,41,51,61,71,81,91: m:=' год';

     2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94: m:=' Года ';

     5..20,25..30,35..40,45..50,55..60,65..70,75..80,85..90,95..99:m:=' «лет';

    end;

    write('Мне ',k,m);

    readkey;

end.

 

Задача 3.

Составить программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99), обозначающего денежную единицу, дописывает слово «Копейка» в правильной форме. Например, 5 копеек, 41 копейка и т. д.

program kopeyka;

uses Crt;

var k : integer ;

    m : string ;

begin

    clrscr;

    write('‚Введите количество копеек: ');

    readln(k);

    case k of

     1,21,31,41,51,61,71,81,91: m:=' копейка ';     ( в интервале пишет слово «копейка»)

     2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94: m:=' копейки';   

     5..20,25..30,35..40,45..50,55..60,65..70,75..80,85..90,95..99:m:=' копеек';

    end;

    write(' У Вас ',k,m);

    readln;

end.

     V.      Итоги урока. Обсуждение пройденного материала. Выставление оценок за самаботу.

 

  VI.      Домашнее задание: выучить конспект .

Составить программу, которая по номеру месяца, введенного с клавиатуры, выводит количество дней в нем. В программе учесть количество дней в феврале для високосного и не високосного годов.

 

 


 

 

Hosted by uCoz