top of page

Урок 15-16

Тема: Оператор выбора  на Паскале.

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

 

1. Проверка дом. задания.

1.Выяснить оканчивается ли заданное число нулем.

2. Выяснить взаимное расположение прямой ОХ и точки (a,b).

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

3. Новый материал

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

Не рекомендуют использовать многократно вложенный друг в друга условный оператор if. Если необходимо проверить много условий и в зависимости от них выполнять те или иные действия, то используют оператор выбора case.

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

case переключатель of
  список выбора 1: оператор1;
  ...
  список выбора N: операторN;
  else оператор0
end;

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

Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.

Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую:

case DayOfWeek of
  1..5: writeln('Будний день');
  6,7: writeln('Выходной день');
end;

 

3. Решение задач.

 Задача 1. Составить программу, которая в зависимости от порядкого номера дня недели выводит на экран его название.

Program z1;

Var n: integer;

Begin

Read (n);

Case n of               или  n mod 7

1: Write (‘понедельник’);

2: Write (‘вторник’);

3: Write (‘среда’);

4: Write (‘четверг’);

5: Write (‘пятница’);

6: Write (‘суббота’);

7(0): Write (‘воскресенье’);

end;

end.

 

Задача 2.  Выполнить заданную арифметическую операцию с двумя числами.

program z2;

uses crt;

var op:char;

a,b,s:real;

begin

write('введи числа '); readln(a,b);

 write('введи знак операции '); readln(op);

 case op of

 '+': s:=a+b;

 '-': s:=a-b;

 '*': s:=a*b;

 '/': s:=a/b;

 end;

  write(a, op, b,'=',s);

  end.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

Задача 3. По количеству набранных при тестировании баллов выставить соответствующую отметку. Пусть введена 100-бальная система и заданы следующие критерии оценивания:

 

 

program z2;

uses crt;

var s : integer;

       b: 2..5;

begin

write('Введите балл '); readln(s);

 case s of

 90..100: b:=5;

 80..89: b:=4;

 65..79: b:=3;

 else b:=2

 end;

  write('Отметка ', b);

  end.

 

Задача 4. В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначались названиями цветов: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака и свинья.  Например: 1984 год – год начала очередного цикла – назывался Годом Зеленой Крысы.

Составить программу, которая по заданному номеру года нашей эры n напечатает его название по старояпонскому календарю. Рассмотреть два случая:

а) Значение n ≥ 1984;

б) Значение n может быть любым натуральным числом.

 

program z2;

uses crt;

var n : integer;

begin

write('введи год '); readln(n);

 n:=(n-1984) mod 12;

 case n of

 0: write('крыса');

 1: write('корова');

 2: write('тигр');

 3: write('заяц');

 4: write('дракон');

 5: write('змея');

 6: write('лошадь');

  7: write('овца');

  8: write('обезьяна');

  9: write('курица');

  10: write('собака');

  11: write('свинья');

   end;

  end.

 

program z2;

uses crt;

var n,m : integer;

begin

write(' введи год '); readln(n);

 if n>= 1984 then begin m:=(n-1984) mod 5;

      n:=(n-1984) mod 12;end

      else begin m:= 5-(1984-n) mod 5;

         n:= 12-(1984-n) mod 12; end;

 case m of

 0: write('зеленый  ');

 1: write('красный ');

 2: write('желтый  ');

 3: write('белый  ');

 4: write('черный  ');

 end;

 case n of

    0: write('крыса ');

 1: write('корова ');

 2: write('тигр ');

 3: write('заяц ');

 4: write('дракон ');

 5: write('змея ');

 6: write('лошадь');

  7: write('овца');

  8: write('обезьяна');

  9: write('курица');

  10: write('собака');

  11: write('свинья');

end;

    end.

 

4. Итог урока.

5. Домашнее задание:

 

  1. Принадлежит ли точка фигуре.

 

2. Вычислить значение функции..

bottom of page