Лабораторная работа 3.4. Логические функции

Цель. Научиться создавать и вызывать логические функции. Разобраться в особенностях их использования.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

Задача 1. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно четным. Используя данную функцию, выведите все нечетные элементы массива, заполненного случайными числами.

#include <iostream>

using namespace std;

bool isEven(int x) {

return x%2==0;

}

int main() {

cout << "n=";

int n; cin>>n;

int mas[100];

for (int i=0; i<n; i++) {

mas[i] = rand()%100;

}

for (int i=0; i<n; i++) {

if (!isEven(mas[i])) {

cout << mas[i] << " ";

}

}

system("pause");

return 0;

}

Задача 2. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно полным кубом. Используя данную функцию, проверьте, являются ли полными кубами числа 1, 5, 8, 25, 27.

#include <iostream>

using namespace std;

bool isCube(int x) {

for (int i=1; i<=x; i++) {

if (i*i*i == x) {

return true;

}

}

return false;

}

int main() {

setlocale(LC_ALL, "Russian");

isCube(1)? cout << "Да\n": cout << "Нет\n";

isCube(5)? cout << "Да\n": cout << "Нет\n";

isCube(8)? cout << "Да\n": cout << "Нет\n";

isCube(25)? cout << "Да\n": cout << "Нет\n";

isCube(27)? cout << "Да\n": cout << "Нет\n";

system("pause");

return 0;

}

Задача 3. Создайте логическую функцию, которая принимает строку из круглых скобок, и проверяет, корректно ли они расставлены. Например, следующие последовательности корректны: (), (()()), ()(()()); а следующие – некорректны: ()),)(, ())((). Используя данную функцию, проверьте корректность нескольких каких-либо последовательностей скобок.

#include <iostream>

using namespace std;

bool isCorrect(string br) {

int t=0;

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

if (br[i] == ')') {

if (t==0) {

return false;

} else {

t--;

}

} else {

t++;

}

}

return t==0;

}

int main() {

setlocale(LC_ALL, "Russian");

isCorrect("()()")? cout<<"Да\n": cout<<"Нет\n";

isCorrect("(())")? cout<<"Да\n": cout<<"Нет\n";

isCorrect(")()")? cout<<"Да\n": cout<<"Нет\n";

isCorrect("(()((")? cout<<"Да\n": cout<<"Нет\n";

system("pause");

return 0;

}

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

#include <iostream>

using namespace std;

bool isFact(int x) {

int f=1;

for (int i=1; i<=x; i++) {

if (f==x) {

return true;

}

f*=i;

}

return false;

}

int main() {

setlocale(LC_ALL, "Russian");

isFact(1)? cout << "Да\n": cout << "Нет\n";

isFact(2)? cout << "Да\n": cout << "Нет\n";

isFact(3)? cout << "Да\n": cout << "Нет\n";

isFact(6)? cout << "Да\n": cout << "Нет\n";

isFact(120)? cout << "Да\n": cout << "Нет\n";

system("pause");

return 0;

}

Задача 5. Создайте логическую функцию, которая принимает целочисленный аргумент и проверяет, является ли это число совершенным. Используя данную функцию, выведите на экран все совершенные числа из диапазона от 1 до 10000.

#include <iostream>

using namespace std;

bool isPerfect(int x) {

int sum=0;

for (int i=1; i<x; i++) {

if (x%i==0) {

sum+=i;

}

}

return sum==x;

}

int main() {

for (int i=1; i<=10000; i++) {

if (isPerfect(i)) {

cout << i << endl;

}

}

system("pause");

return 0;

}

ЗАДАЧИ

1. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно четным. Используя данную функцию, определите количество нечетных элементов в массиве, заполненном случайными числами.

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

3. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно простым. Используя данную функцию, определите количество простых элементов в массиве, заполненном случайными числами.

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

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

6. Создайте логическую функцию, которая принимает два целочисленных аргумента и проверяет, являются ли они взаимно простыми. Используя данную функцию, выведите все числа из диапазона от 1 до N, которые являются взаимно простыми с числом 30030. Число N введите с клавиатуры.

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

8. Назовем трехзначное число счастливым, если произведение цифр этого числа равно их сумме. Например, число 312 – счастливое, поскольку 3+1+2 = 3*1*2. Создайте логическую функцию, которая принимает трехзначное число в качестве аргумента и проверяет, является ли оно счастливым. Используя данную функцию, выведите на экран все счастливые числа.

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

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

11. Создайте логическую функцию, которая принимает в качестве аргумента символ и проверяет, является ли он русской буквой. Используя данную функцию, определите число русских букв во введенной строке.

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

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

14. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно полным кубом. Используя эту функцию, проверьте, являются ли полными кубами числа 12, 8, 20, 1000.

15. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно степенью двойки. Используя эту функцию, проверьте, являются ли степенями двойки числа 12, 8, 500, 1024.

16. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно факториалом какого-либо числа. Используя эту функцию, проверьте, являются ли факториалами 12, 6, 122, 720.

17. Создайте логическую функцию, которая принимает в качестве аргумента год и проверяет, является ли он високосным. Используя данную функцию, проверьте, являются ли високосными года 1600, 2002, 2012, 2013.

18. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, является ли оно элементом последовательности Фибоначчи. Используя данную функцию, проверьте, являются ли числами Фибоначчи 8, 12, 13, 43.

19. Создайте логическую функцию, которая принимает в качестве аргумента строку и проверяет, является ли она палиндромом. Используя эту функцию, проверьте, являются ли палиндромами какие-либо несколько строк.

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

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

22. Создайте логическую функцию, которая принимает целочисленный аргумент и проверяет, является ли это число совершенным. Используя эту функцию, выведите все совершенные числа из диапазона от 1 до 10000.

23. Три числа a, b, c называются пифагоровыми, если для них справедливо соотношение a2+b2=c2. Создайте логическую функцию, которая принимает три числа в качестве аргументов и проверяет, являются ли они пифагоровыми. Используя созданную функцию, проверьте, являются ли пифагоровыми следующие тройки чисел: (1,2,3), (2,3,4), (5,12,13).

24. Два числа называются числами-близнецами, если они оба являются простыми, и их разность равна 2. Например, близнецами являются числа 5 и 7, 11 и 13, а также 17 и 19. Создайте логическую функцию, которая принимает два числа и проверяет, являются ли они близнецами. Используя данную функцию, проверьте, являются ли какие-либо несколько пар чисел близнецами.

25. Число называется автоморфным, если оно равно последним цифрам своего квадрата. Например, автоморфными числами являются 5 и 25, поскольку 52=25 и 252=625. Создайте логическую функцию, которая принимает в качестве аргумента число и проверяет, является ли оно автоморфным. Используя эту функцию, проверьте автоморфность каких-либо несколько чисел.

26. Создайте логическую функцию, которая принимает в качестве аргумента строку, представляющую собой последовательность открывающихся и закрывающихся круглых скобок, и проверяет, корректно ли они расставлены. Например, следующие последовательности корректны: (), (()()), ()(()()); а следующие – нет: ()),)(, ())((). Используя эту функцию, проверьте корректность нескольких последовательностей.

27. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, имеет ли это число симметричное двоичное представление. Используя данную функцию, проверьте, является ли двоичное представление чисел 1, 3, 9, 7, 15 симметричной.

28. Создайте логическую функцию, которая принимает в качестве аргумента целое число и проверяет, имеет ли это число симметричное десятичное представление. Используя эту функцию, проверьте, является ли десятичное представление чисел 101, 333, 123, 1000 симметричной.

29. Создайте логическую функцию, которая принимает в качестве аргумента строку и проверяет, является ли она корректным идентификатором согласно правилам языков C/C++. Проверять на совпадение с ключевыми словами не обязательно. Используя эту функцию, проверьте корректность нескольких идентификаторов.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: