Цель. Научиться создавать и вызывать логические функции. Разобраться в особенностях их использования.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Задача 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. Создайте логическую функцию, которая принимает в качестве аргументов три числа и проверяет, можно ли из отрезков такой длины составить треугольник. Проверьте работу функции на нескольких тройках чисел.