1. A & B: В Африке водятся жирафы, и в Мурманске идёт снег. A | B: В Африке водятся жирафы, или в Мурманске идёт снег. A xor B: В Африке водятся жирафы, или в Мурманске идёт снег, но не одновременно. A -> B: Если в Африке водятся жирафы, то в Мурманске идёт снег. !A & !B: В Африке не водятся жирафы, и в Мурманске не идёт снег. Возможны и другие высказывания. & - логическое и, | - логическое или, xor - исключающее или, ! - отрицание, -> - импликация.
2. A = "Винни-Пух любит мёд" B = "Дверь в дом открыта" Исходное высказывание через A, B записывается так: A & B. Нужно построить отрицание !(A & B). По законам де Моргана это еще эквивалентно такому: !A | !B. !(A & B) = Неверно, что Винни-Пух любит мёд и дверь в дом открыта. !A | !B = Винни-Пух не любит мёд или дверь в дом закрыта.
/*суммы будем сравнивать по модулю, в ином случае программа не будет иметь смысла, так как сумма отрицательных всегда будет меньше, чем сумма положительных*/
A | B: В Африке водятся жирафы, или в Мурманске идёт снег.
A xor B: В Африке водятся жирафы, или в Мурманске идёт снег, но не одновременно.
A -> B: Если в Африке водятся жирафы, то в Мурманске идёт снег.
!A & !B: В Африке не водятся жирафы, и в Мурманске не идёт снег.
Возможны и другие высказывания. & - логическое и, | - логическое или, xor - исключающее или, ! - отрицание, -> - импликация.
2. A = "Винни-Пух любит мёд"
B = "Дверь в дом открыта"
Исходное высказывание через A, B записывается так: A & B.
Нужно построить отрицание !(A & B). По законам де Моргана это еще эквивалентно такому: !A | !B.
!(A & B) = Неверно, что Винни-Пух любит мёд и дверь в дом открыта.
!A | !B = Винни-Пух не любит мёд или дверь в дом закрыта.
Таблица истинности:
/*суммы будем сравнивать по модулю, в ином случае программа не будет иметь смысла, так как сумма отрицательных всегда будет меньше, чем сумма положительных*/
#include <iostream>
#include <cmath>
using namespace std;
void check() {
float s_positive = 0, s_negative = 0, digit;
try {
cout << "Начинайте ввод чисел" << endl;
do {
cin >> digit;
if (digit > 0)
s_positive += digit;
else
s_negative += digit;
} while (digit != 0);
if (s_positive > abs(s_negative))
cout << "Сумма положительных чисел больше!";
else if (abs(s_negative) > s_positive)
cout << "Сумма отрицательных чисел больше!";
else
cout << "Суммы равны по модулю!";
}
catch (...) {
cout << "Ошибка!";
}
}
signed main() {
setlocale(LC_ALL, "Rus");
check();
return 0;
}