Оператор выбора case

Автор работы: Пользователь скрыл имя, 18 Февраля 2011 в 14:29, доклад

Описание работы

Для программирования разветвлений в алгоритме чаще всего используется условный оператор if…then или if…then…else.

Файлы: 1 файл

Оператор выбора case.doc

— 122.00 Кб (Скачать файл)

Оператор  выбора case 

Для программирования разветвлений в алгоритме чаще всего  используется условный оператор if…then или if…then…else.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 Однако если  путей выбора много, то запись  алгоритма с помощью условного  оператора становится сложной.  

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

Этот оператор имеет следующую форму:  

case <выражение> of  

значение 1: оператор 1;

значение 2: оператор 2;

………………………………………

значение n: оператор n;  

else begin

                 операторы ветви else;

       end;

end;

 

В этой конструкции  операторы могут быть составными, <выражение> должно быть порядкового  типа, т.е. integer, char, boolean.  

Тип <значение> должен совпадать с типом <выражение>, может быть одно или несколько, разделенных запятыми, а также может представлять собой

некоторый диапазон значений. 

 Вся конструкция должна завершаться ключевым словом end.  

Ветвь else вместе с оператором может отсутствовать. 

Оператор работает следующим образом:  

1. вычисляется  значение <выражения>.  

2. выполняется  оператор, метка которого <значение> совпадает со значе-нием <выражение>.  

3. Если ни  одно<значение> не совпадает со  значением <выражение>, вы-полняется  оператор после else. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Примеры:

  1. Пример использования инструкции case для организации меню (схема)
 

program menu1;

var

     vybor:integer;

begin

     writeln('1 - Максимальная температура');

     writeln('2 - Минимальная температура');

     writeln('3 - Средняя температура');

     writeln;

     writeln('Введите номер задачи и нажмите <Enter>');

     write('Ваш выбор -> ');

     readln(vybor);

     case vybor of

         1:   begin

                   { вычисление максимальной  температуры }

              end;

         2:   begin

                   { вычисление минимальной температуры }

              end;

         3:   begin

                   { вычисление средней  температуры }

              end;

     end;

end. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. С клавиатуры вводим номер  месяца и компьютер  определяет время  года
 

program Prim2;

uses CRT;

var month: integer;

begin

      writeln('Введите номер месяца и нажмите <Enter>');

      write('->');

      readln(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;

      readln;

end. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3. Написать программу, которая вычисляет стоимость междугороднего телефонного разговора.

Формула:  цена минуты * количество минут разговора

(в зависимости  от кода города – цена минуты  разная) 

program Prim3;

uses CRT;

var

    kod: integer;

    cena: real;

    dlit: integer;

    summ: real;

begin

       writeln('Вычисление стоимости разговора по телефону');

       writeln('Введите исходные данные:');

       write('код города ->');

       readln (Kod);

       write('Длительность разговора (целое количество минут ->');

       readln(dlit);

       write('Код города: ');

       case kod of

          432: Begin

                writeln('Владивосток');

                cena:=2.2;

               end;

          495: begin

                writeln('Mocквa');

                cena:=1;

               end;

          815: begin

                writeln('Мурманск');

                cena:=1.2;

               end;

          812: begin

                writeln('Санкт - Петербург');

                cena:=0.00000;

                Writeln('У нас бесплатно');

               end;

          846: begin

                writeln('Caмapa');

                cena:=1.4;

               end;

        end;

        summ:= cena * dlit;

        writeln('Цена минуты:', cena:6:2,'pyb.');

        writeln('Стоимость разговора:',summ:6:2,' pyb.');

        readln; 

readln;

end. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    4.  Написать программу, которая вычисляет дату следующего дня. Рекомендуемый вывод на экран: 
     

Введите цифрами сегодняшнюю  дату (число месяц  год) -> 31 12 2010

Последний день месяца!

С наступающим Новым  годом!

Завтра 1.1.2011 

Program Prim4;

Uses Crt;; 

var

     day:integer;

     month:integer;

     year:integer; 

     last:boolean;{TRUE, если текущий день последний день месяца }

     r:integer;   {если год високосный, то остаток от деления year                   на 4 равен нулю }

begin

     writeln;

     writeln('Задайте  цифрами сегодняшнюю  дату');

     write('(  число месяц год  )-> ');

     readln(day,month,year);

     last:=FALSE;

     case month of

         1,3,5,7,8,10,12:if day=31

                            then last:=TRUE;

         4,6,9,11: if day=30

                          then last:=TRUE;

         2: if (day=28)

                            then begin

                                r:=year mod 4;

                                if r<>0 then

                                last:=TRUE;

                            end;

      end;

      if last 

              then begin

              writeln('Последний день месяца!');

              day:=1;

              if month=12

                  then begin

                       month:=1;

                       year:=year + 1;

                       writeln('С наступающим  Новым годом!');

                  end

                  else month:=month + 1;

      end

         else day:=day + 1;

      writeln('Завтра ',day,'.',month,'.',year );

end. 

5. Написать программу, которая после введённого с клавиатуры числа (в диапазоне 0т 1 до 99, обозначающего денежную единицу, дописывает слово РУБЛЬ в правильной форме: 12 рублей, 21 рубль и т.д. 

Uses Crt;

var

n: integer; {число}

m: integer; {остаток от деления n на 100 (последние 2 цифры) }

r: integer; {остаток от деления n на 10 (последняя цифра) }

begin

    writeln ('введите целое число(от 1 дo 999) ', 'и нажмите <Enter> ');

     write ('-> ');

     readln(n);

     write (n, ' ');

     {окончание определяется двумя последними цифрами }

     if n>100

         then m:= n mod 100;

     if (m>= 11) and (m<= 14)

         then

           writeln ( 'рублей' )

         else begin

             r:=n mod 10;

             case r of

               0, 5..9: writeln ('рублей');

                  1:    writeln ('рубль');

                                 2..4: writeln ('рубля');

               end;

           end;

     readln;

end.

Информация о работе Оператор выбора case