Цель урока: изучить запись оператора ветвления и решение задач с использованием оператора ветвления.
Ветвление – алгоритмическая конструкция, в которой в зависимости от условия выполняется та или иная последовательность действий.
Полная форма | Сокращенная форма |
if <условие> then команды 1 else команды 2; | if <условие> then команды 1; |
Строка if <условие> then является заголовком ветвления. Эту строку можно прочитать следующим образом:
Условный оператор работает по следующему алгоритму.
- Сначала вычисляется значение логического выражения, расположенного за служебным словом IF.
- Если его результат истина, выполняется <оператор 1>, расположенный после слова THEN, а действия после ELSE пропускаются;
- Если результат ложь, то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется <оператор 2>.
В случае сокращенной формы команды ветвления команда 1 исполняется только тогда, когда условие истинно, в противном случае ничего не выполняется.
Ветвление может изображаться на блок-схеме следующим образом:
Полная форма
Сокращенная форма
Если при выполнении или невыполнении условия требуется не одно, а несколько действий, то следует применить составной оператор.
Составной оператор – последовательность команд, заключенная в операторные скобки begin и end.
Формат составного оператора:
begin
команда 1;
команда 2;
...............
команда n;
end;
Составное условие — условие, которое образуется из нескольких простых условий, соединенных друг с другом логическими операциями: AND,OR, NOT.
Пример блок-схемы алгоритма нахождения максимального числа двух введенных с клавиатуры чисел.
Пример 1. Компания набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он для данной компании (вывести ответ «подходит» или «не подходит»).
Пример 2. Написать программу, которая проверяет введенное число М. Если число четное – то нарисовать красный круг, если нечетное – то нарисовать зеленый прямоугольник.
uses GraphABC;
var
m: integer;
begin
writeln('введите число');
read(m);
writeln(m);
//проверяем четность числа
if m mod 2 = 0 then
// если число оказалось четным
begin
circle(320, 200, 70);
FloodFill(320, 200, clRed)
end
else
// если число оказалось нечетным
begin
Rectangle(150, 100, 400, 250);
FloodFill(320, 200, clGreen)
end
end.
Пример 3. Напишите программу, которая получает трехзначное число и проверяет, читается ли оно одинаков слева направо и справа налево.
Например, если число 151 прочитать справа налево, мы также получаем число 151, а если число 123 прочитать справа налево – получим число 321.
Var a, a1, a2, a3: integer;
Begin
write('введите a=');
read(a);
if (a>99) and (a<1000) then
begin
//первая цифра
a1:=a div 100;
//вторая цифра
a2:=a mod 100 div 10;
//третья цифра
a3:=a mod 10;
if a1 = a3 then
writeln('Число читается одинаково слева направо и справа налево')
else
writeln('Не повезло')
end
else
Writeln('Число не трехзначное');
End.
Задания по теме урока
Задание 1. Напишите программу, которая находит меньшее из двух введенных с клавиатуры чисел X, Y и выводит его на экран.
Задание 2. Дано целое число. Напишите программу, которая увеличивает это число в три раза, если оно положительное, в противном случае возводит его в квадрат.
Задание 3. Напишите программу, которая запрашивает число от 0 до 23 и определяет по нему, какое сейчас время суток (ночь – 0..5, утро – 6..10, день – 11..18, вечер – 19..23). Указание: обратите внимание на сокращенную форму оператора ветвления.
Задание 4. Дано натуральное число. Напишите программу. Если число четное, то нарисуйте на экране синий квадрат, а если нечетное, то черный круг. Указание: обратите внимание на Пример 1, а также на Урок 16, в котором рассмотрены графические возможности Pascal.
Дополнительное задание
Напишите программу, которая получает трехзначное число и проверяет, являются ли все его цифры четными числами. Указание: обратите внимание на Пример 2.
Домашнее задание
§ 16 учебного пособия, ответить на вопросы
Форма отправки решений
Форма видна только зарегистрированным пользователям.