Условный оператор

Очень часто отдельные этапы вычислений выполняются в зависимости от условий (не всегда последовательно).
Формат:   IF <условие> THEN
                     <операторы1>
                     ELSE
                     <операторы2>
                 END IF

IF, THEN, ELSE, END IF – служебные слова.
Оператор можно прочитать так: если выполняется условие, то выполнятся операторы1, иначе выполнятся операторы2.
Условие может быть правдой (истинным) или неправдой (ложным).
Операторы1 – будут выполняться, если условие истинно.
Операторы2 – будут выполняться, если условие ложно.
Условие – это логическое выражение, которое может содержать операции (<, >, =, <>, <=, >=)  и логические связки (and, or).

Операция  

или

связка

Смысл

Пример

<

Меньше

Если x меньше y, то …

IF x <  y THEN…

<=

Меньше или равно

Если x меньше или равно y, то …

IF x <= y THEN…

>

Больше

Если x больше y, то …

IF x > y THEN…

>=

Больше или равно

Если x больше или равно y, то …

IF x >= y THEN…

<>

Не равно

Если x не равно y, то …

IF x <> y THEN…

=

Равно

Если x равно y, то …

IF x = y THEN…

And

И

Если необходимо проверить, чтобы одновременно выполнялись условия:

x > y

x - y > 5

x + y < 100, то условие будет выглядеть так: IF( x > y) and (x - y > 5) and (x + y < 100) THEN…

Если хотя бы одно из условий окажется не верным, то все условие будет считаться ложным.

Or

Или

Если необходимо проверить, чтобы выполнялось хотя бы одно из условий:

x > y

x - y > 5

x + y < 100,то условие будет выглядеть так: IF( x > y) or (x - y > 5) or (x + y < 100) THEN…

Если хотя бы одно из условий окажется верным, то все условие будет считаться истинным.


Задание:  Дано число х. Если данное число больше 10 и не больше 200, то нарисовать в центре экрана красный круг с радиусом, равным этому числу, иначе нарисовать зеленый квадрат со стороной х, левый верхний угол которого располагается в точке с координатами (80, 80).
Решение:
В программе необходимо реализовать следующий алгоритм:
1) Ввести число: х;
2) Проверить условие 10 < x <= 200. Если условие истинно, то нарисовать круг, а иначе – нарисовать квадрат.
Программа: 
CLS
PRINT "введите число"
INPUT x
SCREEN 12
IF (x > 10) and (x <= 200) THEN 
                                        CIRCLE (320, 240), x, 4 
                                        PAINT (320, 240), 4, 4 
                                        ELSE 
                                        LINE (80, 80) - (80 + x, 80 + x), 2, BF                 
END IF
END


Задание:  Дан четырехзначный номер трамвайного билета. Проверить: счастливый ли он.
Решение:
Пусть х – переменная, в которой будет храниться номер.
В программе необходимо реализовать следующий алгоритм:
1) Ввести номер: х;
2) Найти цифры номера: х1, х2, х3, х4;
3) Найти суммы цифр: s1 = x1 + x2 и s2 = x3 + x4;
4) Если s1=s2, то печатаем «счастливый билет», иначе печатаем «не счастливый билет».
Программа: 
CLS
PRINT "введите четырехзначный номер билета"
INPUT x
x4 = x mod 10
x = x \ 10
x3 = x mod 10
x = x \ 10
x2 = x mod 10
x1 = x \ 10
s1 = x1 + x2
s2 = x3 + x4
IF s1 = s2 THEN
                  PRINT "счастливый билет"   
                  ELSE
                  PRINT "не счастливый билет"
END IF
END

Особые формы условного оператора

1. Если в случае истинности условия нужно выполнить несколько операторов, а в случае ложности ничего выполнять не надо.


Формат:  IF <условие> THEN
                                 <операторы>
                END IF


Задание:  Дано пятизначное число. Если число четное, то найти сумму его цифр.
Решение:
Пусть х – переменная, в которой будет храниться число, а sum – сумма цифр этого числа.
Число является четным, если при делении на 2 в остатке получается 0.
В программе необходимо реализовать следующий алгоритм:
1) Ввести число: х;
2) Проверить, является ли число четным. Если число четное, то: 
                                                                            а) найти его цифры: х1, х2, х3, х4, х5;
                                                                            б) найти сумму цифр;
                                                                            в) вывести результат.
Программа: 
CLS
PRINT "введите пятизначное число"
INPUT x
IF x mod 2 = 0 THEN
             х5 = x mod 10
             x = x \ 10
             x4 = x mod 10
             x = x \ 10
             x3 = x mod 10
             x = x \ 10
             x2 = x mod 10
             x1 = x \ 10
             s = x1 + x2 + x3 + x4 + x5
             PRINT "сумма цифр данного числа ", sum
END IF
END

 

2. Если в случае истинности условия нужно выполнить один оператор, и в случае ложности тоже только один оператор, то команду можно записывать в одну строку и не писать служебное слово END IF.


Формат:  IF <условие> THEN  <оператор1> ELSE <оператор2>


Задание:  Дано трехзначное число и цифра k. Если в середине числа 0, то заменить 0 на цифру k, иначе убрать среднюю цифру.
Решение:
Пусть х – переменная, в которой будет храниться число, а y – результат.
В программе необходимо реализовать следующий алгоритм:
1) Ввести число: х;
2) Найти его цифры: х1, х2, х3;
3) Сравнить среднюю цифру с нулем и, в случае истинности сравнения, собрать по разрядам число y из цифр х1, k, х3, а иначе, собрать у из цифр х1 и х3;
4) Вывести результат.
Программа: 
CLS
PRINT "введите трехзначное число"
INPUT x
x3 = x mod 10
x = x \ 10
x2 = x mod 10
x1 = x \ 10
IF x2 = 0 THEN y = x1 * 100 + k * 10 + x3  ELSE y = x1 * 10 + x2
PRINT "результат: ", y
END

 

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


Формат:  IF <условие> THEN  <оператор>


Задание:  Дано пятизначное число. Посчитать количество нулей в его записи.
Решение:
Пусть х – переменная, в которой будет храниться число, а kol – результат.
В программе необходимо реализовать следующий алгоритм:
1) Ввести число: х;
2) Найти его цифры: х1, х2, х3, x4, x5;
3) Поочередно сравнивать каждую цифру с 0 и, в случае истинности условия, увеличивать переменную kol на 1;
4) Вывести результат.
Программа:
CLS
PRINT "введите пятизначное число"
INPUT x
х5 = x mod 10
x = x \ 10
x4 = x mod 10
x = x \ 10
x3 = x mod 10
x = x \ 10
x2 = x mod 10
x1 = x \ 10
IF x1 = 0 THEN kol = kol + 1
IF x2 = 0 THEN kol = kol + 1
IF x3 = 0 THEN kol = kol + 1
IF x4 = 0 THEN kol = kol + 1
IF x5 = 0 THEN kol = kol + 1
PRINT "в числе  ", kol, " нулей"
END


Задание:  Дано трехзначное число. Составить из его цифр новое число, расположив цифры в порядке возрастания.
Решение:
Пусть х – данное число, х1, х2, х3 – его цифры, а у - результат. Чтобы составить новое число, необходимо выбрать из х1, х2 и х3 минимальную (min), среднюю (s) и максимальную (max) цифры. Предположим, что х1 является максимальной, т.е. max = x1. Сравним с переменной max следующую цифру. Если x2 > max, то max = x2. Теперь в переменной max будет храниться наибольшее из значений х1 или х2. Сравним с max третью цифру. Если x3 > max, то max = x3. Теперь в переменной max будет храниться наибольшее из значений х1, х2 или х3.
Максимальная цифра найдена. Аналогично найдется и минимальная.
Чтобы найти среднюю цифру, достаточно из суммы всех цифр вычесть минимальную и максимальную.
А теперь из цифр min, s и max соберем по разрядам искомое число у.
В программе необходимо реализовать следующий алгоритм:
1) Ввести число: х;
2) Найти его цифры: х1, х2, х3;
3) Найти максимальную цифру (max);
4) Найти минимальную цифру (min);
5) Найти среднюю цифру (s);
6) Собрать результат (y);
7) Вывести результат.
Программа:
CLS
PRINT "введите трехзначное число"
INPUT x
x3 = x mod 10
x = x \ 10
x2 = x mod 10
x1 = x \ 10 
max = x1
IF x2 > max THEN max = x2
IF x3 > max THEN max = x3
min = x1
IF x2 < min THEN min = x2
IF x3 < min THEN min = x3
s = x1 + x2 + x3 - min - max
y = min * 100 + s * 10 + max
PRINT "результат ", у
END


 

Задания для самостоятельного выполнения
1. Даны два трехзначных числа. Большее из чисел перевернуть, а у меньшего убрать среднюю цифру (Например, а = 479 и b = 328, то результат: a = 974 и b = 38).
2. Даны три числа. Вывести на экран среднее из них. 
3. Дано четырехзначное число. Заменить нулем его максимальную цифру.
4. В корзине х кг яблок и у кг груш. Яблоко весит а г, а груша – b г. Каких фруктов больше по количеству?
5. Написать программу, которая по введенному числу делает следующее:
    а) если число в промежутке от 1 до 4, то рисует круг соответствующего цвета в соответствующей четверти экрана радиусом 120 пикселей (в центре четверти);
    б) если число не входит в вышеуказанный диапазон, то выдает сообщение об этом.

 

Адрес: 614039, г. Пермь, ул. Комсомольский проспект, 45
Телефон: +7 (342) 212-80-71
E-Mail: school9-perm@ya.ru
Вопрос администратору сайта