Нарисуем на диаграмме, при каких x выражение ((x ∈ A) → (x ∈ P)) ∧ ((x ∈ Q) → ¬(x ∈ A)) истинно. Выражение состоит из двух условий, соединенных логическим и, так что оно будет истинным в том и только в том случае, когда оба условия истинны.
(x ∈ A) → (x ∈ P) истинно всегда, кроме случая x ∈ A, x ∉ P. На рисунке область истинности выделена синей штриховкой.
(x ∈ Q) → ¬(x ∈ A) истинно всегда, кроме случая x ∈ Q, x ∈ A. На рисунке эта область выделена зелёной штриховкой.
Формула истинна, если x принадлежит областям, выделенным обеими штриховками одновременно. Если формула верна при всех x, то области, не выделенные какой-то из штриховок, не содержат элементов, так что всё множество A состоит из элементов, которые есть в P, но которых нет в Q (эта область на рисунке помечена звёздочкой). Подходящих элементов всего 7: P \ Q = {2, 4, 8, 10, 14, 16, 20}, – так что максимальное количество элементов в A равно семи.
ответ: 7.
Проверяем в конструкторе значения на данные признаки, если мы получаем ошибку инициализации, то даем переменным нулевые значения, дабы избежать ошибок в других функция. (грубо говоря, чтобы вся программа не легла из-за конструктора, благодаря выводу текстового сообщения мы будем знать где конкретно ошибка)
#include <iostream>
#include <cmath>
class Progression {
private:
float first;
int second;
public:
Progression(float a0, int d) {
if (a0 == round(a0)) {
std::cout << "Инициализация первого члена прогрессии с конструктора не удалась, первый элемент не должен быть целыми числом!\n";
this->first = 0;
}
else {
this->first = a0;
std::cout << "Инициализация первого члена прогрессии успешно!\n";
}
if (d < 0) {
std::cout << "Инициализация разности прогрессии с конструктора не удалась, разность должна быть положительной!\n";
this->second = 0;
}
else {
this->second = d;
std::cout << "Иницализация разности успешно!\n";
}
}
float operator()(int j){
return this->first + this->second * (j - 1);
}
};
signed main() {
setlocale(LC_ALL, "Rus");
float a;
int b;
std::cout << "Введите значение a0 и d: ";
std::cin >> a >> b;
Progression p1(a, b);
std::cout << p1(2);
return 0;
}
2) 390+100=490