Зачастую возникает необходимость добавить в программу команду, которая будет выполняться не всегда, а лишь при стечении каких-нибудь обстоятельств (истинности или ложности заранее определенного условия). Например, если введенное число равно нулю, или последняя буква слова - "а", или введенное имя - "Петя", ну и так далее. Для реализации таких ситуаций и предназначена алгоритмическая структура "Ветвление". Подробнее с ней можно ознакомиться в теме "Алгоритмические структуры".
Запись ветвления на языке программирования может осуществляться в одной из двух форм: сокращенной или полной.
Ветвление. Сокращенная форма
Сокращенная форма ветвления может быть представлена в двух видах: упрощенный и обычный. Упрощенный вид подразумевает, что существует ровно одна команда, которую требуется выполнить в случае истинности условия. Обычный вид допускает неограниченное количество таких команд.
Упрощенный вид
if условие then одна команда
Примечание 1: слова if и then не зря выделены: они всегда одни и те же. Условие выполнения и команду, которую необходимо выполнить определяет программист.
Примечание 2: Обратите внимание, что вся команда записана на одной строчке. Это важно. Перенос какой-либо части сокращенной формы ветвления на другую строчку запрещен.
Примечание 3: Команда, указанная программистом выполнится только в том случае, если условие будет истинно. В противном случае компьютер просто пропустит эту строчку и перейдет к следующей.
Пример 1: Пользователь вводит в программу число. Если это число 5 - программа возводит его в квадрат и выводит результат на экран. Если же число не равно 5 - программа просто выведет его на экран.
Dim Z as Double
Input Z
If Z=5 then Z=Z*Z
print a
Разберем пример более подробно:
Dim Z as Double
Этой командой мы объявляем переменную Z. Данная переменная будет принимать числовые значения
Input Z
Эта команда записывает в переменную Z число, введенное пользователем с клавиатуры
If Z=5 then Z=Z*Z
Самый ответственный момент. Если значение переменной Z (т.е. введенное пользователем число) равно 5 - выполняется команда Z=Z*Z, т.е. значение переменной Z возводится в квадрат
print Z
Вывод значения переменной Z на экран.
Примечание: Данная программа примет от пользователя число, запишет его в переменную Z. Затем компьютер проверит истинность условия "Z=5". Если условие будет истинно - компьютер возведет в квадрат значение переменной Z, иначе эта строчка будет пропущена. Последняя строка программы просто выводит значение переменной на экран.
Задание 1. Написать программу, возводящую введенное пользователем целое число в степень 32. Программа должна сообщить пользователю, если результат будет превышать 264
Задание 2. Написать программу, которая сообщит, если 175я буква введенного пользователем предложения будет буквой Ф.
Обычный вид
Вся проблема упрощенной записи в том, что любая команда, записанная после конструкции "if условие then команда" считается не относящейся к ветвлению и будет выполняться вне зависимости от истинности условия. Чтобы этого избежать, следует использовать обычный вид сокращенной формы:
if условие then
первая команда, которую необходимо выполнить
вторая команда, которую необходимо выполнить
третья команда, которую необходимо выполнить
четвертая команда, которую необходимо выполнить
пятая команда, которую необходимо выполнить
...
n-я команда, которую необходимо выполнить
End if
Примечание 1: Команда "end if", дословно переводящаяся как "конец если" показывает окончание ветвления. Все команды, которые идут после "end if" компьютер выполнит независимо от истинности/ложности условия.
Примечание 2: Чтобы компьютер не посчитал обычную форму упрощенной, необходимо после конструкции "if условие then" обязательно перейти на следующую строку
Пример: Написать программу, которая удвоит любое четное введенное число, а затем извлечет из него квадратный корень.
Dim a as Long
Dim b as Long
Dim x as Long
Input a
If (a mod 2)=0 then
b=a*2
x=sqr(a)
end if
Print x
Разберем пример более подробно:
Dim a as Long
Dim b as Long
Dim x as Long
Input a
Примечание: Объявили переменные, ввели значение переменной "а" с клавиатуры
If (a mod 2)=0 then
Примечание: Эта строчка определяет условие выполнения ветвления. Конструкция "(a mod 2)=0" означает, что остаток от введенного числа "а", при делении его на 2 равен 0. Такие числа и называеются четными.
b=a*2
x=sqr(a)
Примечание: Эти две команды выполнятся, если условие будет истинно (т.е., если пользователь введет четное число).
end if
Примечание: Эта команда показывает конец ветвления. Все, что идет после нее, к ветвлению не относится и будет выполняться независимо от истинности или ложности условия.
Print x
Примечание: Эта команда вызывает эльфов из Сильваноста. (а каких еще пояснений вы ждали? о_О).
Задание 1. Написать программу, которая, получив от пользователя два целых числа, разделит первое на второе. Если же второе число равно нулю - программа выведет предупреждение и попросит пользователя ввести второе число еще раз.
Задание 2. Написать программу, которая вычислит квадрат введенного пользователем двузначного числа. Если же пользователь введе число, в котором количество разрядов больше двух, программа должна скопировать первые два разряда (отбросив остальные) и вычислить их квадрат.