#include <iostream>
int main()
{
int i,a,n,s=0,cnt=0;
// Русский язык в консоли
setlocale(LC_ALL, "Russian");
std::cout << "Введите n: ";
std::cin >> n;
for (i = 0; i < n; i++)
{
std::cout << "Введите " << i+1 << "-е число: ";
std::cin >> a;
if ((a >= 100) && (a < 1000) && (a % 10 == 1))
{
s += a;
cnt++;
}
}
std::cout << "Среднее арифметическое трехзначных чисел, оканчивающихся на 1: " << (s*1.)/cnt;
return 0;
}
ответ: 2, 2, 1, 15
Объяснение:
Поскольку переменных всего четыре, можно составить таблицу всех возможных значений (2^4=16) и рассмотреть задачи наглядно. К решению прилагаются картинки.
Задача 1:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X & Y = 1. Такое может быть только в одном случае, когда и X и Y равны 1. То есть:
(B&C&D) = 1 И (A v B v C) = 1
Для выполнения первого условия необходимо, чтобы все три переменных были 1. Из 16 возможных вариантов остается только 2 (обозначены светло-зеленым). В этих двух вариантах второе условие выполняется автоматически (либо A, либо B, либо C - равны 1).
ответ: 2
Задача 2:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X v Y = 0. Такое может быть только в одном случае, когда и X и Y равны 0. То есть:
(B&C&D) = 0 И (A v B v C) = 0
Рассмотрим второе условие. Для его выполнения необходимо, чтобы A,B и C были равны нулю. Из 16 возможных вариантов остается 2. Первое условие для этих двух вариантов выполняется автоматически (либо B, либо C, либо D - равны 0).
ответ: 2
Задача 3:
Здесь три скобки, объединенные между собой дизъюнкцией (логическое ИЛИ). Результат равен нулю. То есть ни одна скобка не должна быть равна единице (или все три скобки должны быть равны нулю):
(A -> C) = 0 И (B & A)=0 И (D -> B & C)=0
Рассмотрим третье условие:
(D -> B & C) = 0
У конъюнкции (&) приоритет выше, значит, это первое действие. Вторым будет выполняться импликация. Импликация дает ноль только в том случае, когда левое значение (D) равно единице, а правое нулю. Выделим те варианты, когда это выполняется (светло-зеленым): когда D равно единице, а B&C - нулю (то есть когда одно из них равно нулю).
Далее рассмотрим, когда выполняется второе условие (из уже оставшихся 6 вариантов):
(B & A) = 0 (либо B либо A должны быть равны нулю)
Отметим оставшиеся варианты темно-зеленым.
Осталось первое условие: (A -> C) = 0.
Как мы уже говорили, импликация дает ноль только в том случае, когда левое значение (A) равно единице, а правое (C) - нулю. Оставшийся один вариант отмечен синим.
ответ: 1
Задача 4:
Пусть (A & B & C) - X, (C & D) - Y. Тогда:
X -> Y = 1
В таблице истинности для импликации только один вариант дает ноль. Следовательно, нужно исключить лишь его. Остальные варианты будут решением. Рассмотрим, сколько решений имеет логическое уравнение X -> Y = 0, затем из всех возможных вариантов (16, поскольку 4 переменных) вычтем найденное количество.
Импликация дает ноль только в том случае, когда левое значение (X) равно единице, а правое нулю.
Перепишем условие:
X = 1 И Y =0
(A & B & C) = 1 И (C & D) =0
Первое условие выполняется только в том случае, когда A,B и C равны единице. Таких вариантов два (светло-зеленые). Также либо C либо D должны быть равны нулю. Остается один вариант.
Вспомним, что мы решали обратную задачу. Следовательно, итоговый ответ будет: 16-1=15
ответ: 15
Примечание: решать можно и другими возможно, более простыми. Здесь лишь показан один из путей решения.


