А. В. неА. неА*В. неВ. А *неВ.
0. 0. 1. 0. 1. 0
0. 1. 1. 1. 0. 0
1. 0. 0. 0. 1. 1
1. 1. 0. 0. 0. 0
Последний столбик: (неА*В)+(А*неВ)
0
1
1
0
Справочная система запускается с помощью кнопки F1.
Составляем таблицу, в которой на пересечении строки и столбца будем ставить X, если такая комбинация невозможна, и V, если мы определили профессию. У меня будет также написан номер утверждения, в соответствии с которым ставился этот значок:
- <em>Петров и Гришин никогда не держали в руках малярной кисти</em> - значит, Петров и Гришин - не маляры.
- <em>Иванов и Гришин все собираются посетить мельницу, на которой работает их товарищ </em>- Иванов и Гришин - не мельники.
- <em>Петров и Иванов живут в одном доме с почтальоном </em>- Петров и Иванов - не почтальоны.
- <em>Иванов и Сидоров каждое воскресенье играют в городки с плотником и маляром</em> - Иванов и Сидоров - не плотники и не маляры.
- <em>Петров брал билеты на футбол для себя и мельника</em> - Петров - не мельник.
- У Иванова остается только вариант быть парикмахером, остальные - не парикмахеры.
- Петров - плотник, остальные не плотники
- Гришин - почтальон, остальные не почтальоны
- Сидоров - мельник, Алексеев - не мельник
- Алексеев - маляр
Ответ: Иванов - парикмахер, Петров - плотник, Гришин - почтальон, Сидоров - мельник, Алексеев - маляр
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
<u>//№1</u>
begin
var a:=ArrRandom(8,-20,20); a.Println;
a.Transform(t->t mod 5=0?100:t>0?-100:t); a.Println
end.
<u>Пример</u>
-7 -15 8 -19 -16 -10 -16 14
-7 100 -100 -19 -16 100 -16 -100
<u>//№2</u>
begin
var a:=ArrRandom(ReadInteger('n='),1,99); a.Println;
a.Transform(t->t.IsEven?2:1); a.Println
end.
<u>Пример</u>
n= 17
40 89 88 55 73 76 82 86 10 76 3 90 83 94 90 83 75
2 1 2 1 1 2 2 2 2 2 1 2 1 2 2 1 1