Логические функции
Достаточно часто применяют специальный тип функций, которые возвращают логическое значение (да или нет, True или False). Иначе говоря, такая логическая функция отвечает на вопрос «Да или нет?» и возвращает 1 бит информации.
Вернёмся к задаче, которую мы уже рассматривали: вывести на экран все простые числа в диапазоне от 2 до 1000. Алгоритм определения простоты числа оформим в виде функции. При этом его можно легко вызвать из любой точки программы.
Запишем основную программу на псевдокоде:
Предположим, что у нас уже есть логическая функция isPrime, которая определяет простоту переданного ей числа и возвращает да (в Паскале — True), если число простое, и нет (False) в противном случае. Такую функцию можно использовать вместо выделенного блока алгоритма:
Остаётся написать саму функцию isPrime. Будем использовать уже известный алгоритм: если число n в интервале от 2 до √n не имеет ни одного делителя, то оно простое 1:
1 Эту программу можно ещё немного усовершенствовать: после числа 2 имеет смысл проверять только нечётные делители, увеличивая на каждом шаге значение k сразу на 2.
Эта функция возвращает логическое значение, на это указывает ключевое слово лог (в Паскале — boolean). Значение функции определяется как
знач:=(count=0)
Это оператор присваивания. Слева от знака «:=» записана логическая переменная, а справа — логическое выражение (условие). Если это выражение истинно, то в переменную знач записывается значение да, иначе — значение нет.
Логические функции можно использовать так же, как и любые условия: в условных операторах и циклах с условием. Например, такой цикл останавливается на первом введённом составном числе:
Следующая страница Вопросы и задания