Объем информации для записи номеров участников:
для 1го - 1 бит x 1 = 1
для 2-3го - 2 бита x 2 = 4
для 4-7го - 3 бита x 4 = 12
для 8-15го - 4 бита x 8 = 32
для 16-31го - 5 бит x 16 = 80
для 32-63го - 6 бит x 32 = 192
для 64-120 - 7 бит x 64 = 448
для записи результатов по 8 бит на каждого. 8 x 120 = 960
итого, 1729 бит
Ну, я попробую объяснить.
Во-первых, нам нужно определиться в количестве строк в нашей таблице. Нужно 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. И делаем отрицание нашего последнего выражения (¬А∨С /\ В).
Var a, b:integer;
begin
writeln ('Введите стороны a и b');
writeln ('Введите сторону a');
readln (a);
writeln ('Введите сторону b');
readln (b);
writeln;
writeln ('Периметр = ', (a+b)*2);
writeln ('Площадь = ', a*b);
readln;
end.