Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

3.4.2Создание и вызов логической функции

Громоздкое условие можно вынести в логическую функцию.

bool isDigit(char ch) {

string digits = "0123456789";

for (int i=0; i<digits.length(); i++) {

if (ch == digits[i]) {

return true;

}

}

return false;

}

Можно реализовать эту функцию другим способом.

bool isDigit(char ch) {

if (ch == '0' || ch == '1' || ch == '2' ||

ch == '3' || ch == '4' || ch == '5' ||

ch == '6' || ch == '7' || ch == '8' ||

ch == '9') {

return true;

} else {

return false;

}

}

После создания функции ее можно вызвать (программа существенно упростится).

int main() {

char ch;

cout << "Введите символ:" << endl;

cin >> ch;

if (isDigit(ch)) {

cout << "Digit" << endl;

} else {

cout << "No" << endl;

}

system("pause");

return 0;

}

3.4.3Сравнивать с true не обязательно

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

//Способ 1.

if (isDigit(ch)) {

cout << "Digit" << endl;

} else {

cout << "No" << endl;

}

//Способ 2.

if (isDigit(ch) == true) {

cout << "Digit" << endl;

} else {

cout << "No" << endl;

}

К одинаковому результату приводят и следующие условия.

//Способ 1.

if (!isDigit(ch)) {

cout << "Digit" << endl;

} else {

cout << "No" << endl;

}

//Способ 2.

if (isDigit(ch) == false) {

cout << "Digit" << endl;

} else {

cout << "No" << endl;

}

3.4.4Вызов логических функций внутри циклов

Особую пользу логические функции могут приносить при работе с циклами. Пусть требуется ввести с клавиатуры число и вывести все простые числа, не превосходящие это число. Проверка числа на простоту предполагает использование цикла и вывод всех простых чисел от 1 до заданного числа также предполагает наличие цикла, поэтому возникают вложенные циклы, представляющие собой довольно сложную конструкцию. Логическая функция проверки числа на простоту позволяет избежать этой ситуации.

#include <iostream>

using namespace std;

bool isPrime(int n) {

for (int i=2; i<=n-1; i++) {

if (n%i==0) {

return false;

}

}

return true;

}

int main() {

for (int i=2; i<100; i++) {

if (isPrime(i)) {

cout << i << endl;

}

}

system("pause");

return 0;

}

3.4.5Контрольные вопросы

  1. Что такое логическая функция?

  2. Где и как используются логические функции?

  3. Как вызвать логическую функцию?

  4. Создайте логическую функцию, которая проверяет число на четность?

  5. Приведите пример использования логической функции.

  6. Какие рекомендации по именованию логических функций существуют?

  7. Создайте логическую функцию, которая проверяет число на простоту.

  8. Создайте логическую функцию, проверяющую, является ли символ цифрой.

  9. Создайте логическую функцию, проверяющую, является ли число двузначным.

  10. Приведите пример вызова логической функции в цикле.

Тема 3.5. Прикладной программный интерфейс (api)

Прикладной программный интерфейс (application programming interface, API) – набор готовых процедур, функций, классов и прочих средств, предназначенных для разработки приложений и написания программ, предоставляемых библиотекой, фреймворком, сервисом. Предлагаемый набор средств предназначен для решения часто встречающихся задач и создается для облегчения работы программиста, избавляя его от разработки программ «с нуля».

В настоящей теме мы в качестве примера создадим небольшой прикладной программный интерфейс для отображения фигур на экране с использованием вложенных циклов.