Все выражения можно упростить либо алгебраически, либо картами Карно, но в итоге получится одинаковое выражение. Затем просто строим таблицу истинности для упрощённого выражения и вуаля решено =)
~ - это отрицание, как чёрточка сверху на рисунке, просто не могу нормально тут написать. ~C - значит отрицание для С.
1. После упрощения получаем A~BC.
Если для этого выражения построим таблицу истинности, увидим, что оно положительно только при A=1, B=0, C=1. Для любого другого набора на выходе будет 0.
2. После упрощения получаем ~B. (Повторюсь, упрощаем алгебраически применяя законы поглощения и прочие, либо же карты Карно. Можно в лоб строить таблицу истинности, без упрощения, но она получится довольно большой и это геморно. Проще упростить и затем уже считать).
Соответственно, При B=1, на выходе будет 0,
при B=0, на выходе будет 1.
В данном случае A ни на что не влияет.
3. После упрощения получаем A~BB. С таким сочетанием у нас всегда будет 0. Какой бы набор A и B мы не брали, выражение на выходе всегда равно 0.
Объяснение:
1)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do write(a[ i]:8); writeln;
for i:=n downto 1 do write(a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
2)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[ i]); readln;
for i:=1 to n do if a[i]<0 then write(i:2,a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
3)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do if not odd(i) then write(a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
4)
var i,n,s:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do write(a[i]:8); writeln;
s:=0; for i:=1 to n do s:=s+a[i]; writeln('Sum=',s); ;
writeln('Для выхода нажмите Enter'); readln
end.
Объяснение:
begin
readln (a);
if a mod 2 = 0 then
b:= a*a
else
b:= a*a*a;
writeln (b);
end.