1) x * !y * !z - не соответствует, не проходит вторую строчку таблицы истинности 2) !x * !y * z - тоже не проходит вторую 3) !x V !y V x - не проходит первую 4) x V !y V !z - подходит по всем трём строкам из таблицы истинности
для того чтобы понять как это делается нужно подставлять цифры из таблицы истинности в сами выражения и смотреть что в ответе получается.
разберу на примере последнего выражения: 0 V !1 V !1 = 0 V 0 V 0 = 0 - верно 0110 (V это логическое ИЛИ, оно равно 1 когда хотя бы один из элементов равняется 1)
1 V !1 V !1 = 1 V 0 V 0 = 1 - тоже верно согласно таблице x y z f 1 1 1 1
program z1;
var i,n,s:integer;
a : array [1..100] of integer;
begin
write ('Введите количество элементов n < 100: ');
readln(n);
write ('Массив: ');
for i:= 1 to n do
begin
a[i]:=random (21)-10;
write(a[i]:5)
end;
writeln;
s:=0;
for i:= 1 to n do
if a[i]<0 then s:=s+a[i];
writeln ('s = ',s)
end.
Объяснение:
Ошибки
1) нет названия программы и ; после неё
2) в описании массива 3 точки (надо 2)
3) нет кавычек для ввода текста в первом write
4) нет ; после readln (n)
5) нет : при присваивании i в цикле for i = 1
6) нет форматированного вывода или добавленного разделителя в write(a[i])
7) нет ; после первого end
8) нет ; после s:=0
9) нет кавычек для ввода текста в writeln (s = ,s)
10) нет точки после последнего end
Условие
for i:= 1 to n do (перебираем весь массив)
if a[i]<0 then s:=s+a[i]; (если элемент меньше 0, то увеличиваем переменную s (сумму) на него)
2) !x * !y * z - тоже не проходит вторую
3) !x V !y V x - не проходит первую
4) x V !y V !z - подходит по всем трём строкам из таблицы истинности
для того чтобы понять как это делается нужно подставлять цифры из таблицы истинности в сами выражения и смотреть что в ответе получается.
разберу на примере последнего выражения:
0 V !1 V !1 = 0 V 0 V 0 = 0 - верно 0110 (V это логическое ИЛИ, оно равно 1 когда хотя бы один из элементов равняется 1)
1 V !1 V !1 = 1 V 0 V 0 = 1 - тоже верно согласно таблице
x y z f
1 1 1 1
0 V !0 V !1 = 0 V 1 V 0 = 1 - тоже верно 0011