// PascalABC.NET 3.3, сборка 1627 от 27.01.2018 // Внимание! Если программа не работает, обновите версию!
begin Writeln('*** Исходный массив ***'); var a:=MatrRandom(10,10,-75,132); a.Println(4); Writeln(4*a.ColCount*'-'); var s:=a.ElementsWithIndexes.Where(t->t[0].Between(100,999)); foreach var t in s do Write('[',t[1]+1,',',t[2]+1,'] ') end.
Ну, я попробую объяснить. Во-первых, нам нужно определиться в количестве строк в нашей таблице. Нужно 2 возвести в степень количества переменных. У нас это A, B и C (¬A не считается переменной, ибо ¬ — это операция наж переменной А), их 3 шт, следовательно нужно возвести 2 в 3-ю степень. 2^3=8, поэтому будет 8 строк. Сначала записываются в строку наши переменные A, B, C. Под первой записываем половину нолей подряд, половину единиц, под B четверть (половину предыдущей половины) нолей, четверть единиц, чередуя. Для C я думаю понятно, как. Дальше в логическом выражении нужно расставить действия, а для этого нужно знать приоритеты логических операций (как в математике сначала скобки, потом умножение и деление, а уж потом сложение и вычитание). Приоритеты можно "загуглить". Самым приоритетным является логич. отрицание (¬), т.е. сначала выполняется оно, а уж потом все другое. Но тут мы видим большое отрицание всей скобки, но мы не будем искать сначала его, ибо это отрицание содержимого скобки, которое нужно еще найти. Видим ¬А, пишем в таблицу. Смотрим на столбик А и в ¬А пишем все наоборот. Т.е. если в А стоит 0, то в ¬А будет 1 и наоборот. Ибо так работает отрицание. Дальше смотрим. Есть /\ (конъюнкция — логич. умножение) и ∨ (дизъюнкция — логич. сложение). Первым делом после отрицания выполняется умножение, а потом сложение. Записываем С /\ В. Это работает как обычное умножение. Допустим, в С стоит 0, а в В стоит 1, то С*В=0*1=0. Если 1 и 1, то 1 (единственный случай в умножении, где получается единица). Дальше прибавляем НЕ А к С /\ В. Логическое сложение действует как обычное: 1+1=1, 1+0=1, 0+1=1, 0+0=0. И теперь пришли к отрицанию скобки. Чтобы не писать длинную последнюю формулу, можно обозначить ее буквой F. И делаем отрицание нашего последнего выражения (¬А∨С /\ В).
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку