Сначала немного теории. Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и). Таблица истинности импликации(стрелочки): 0 0 1 0 1 1 1 0 0 1 1 1 Общее правило: если a<=b, тогда правда Таблица истинности конъюнкции(/\): 0 0 0 0 1 0 1 0 0 1 1 1 Общее правило: если есть одна ложь-всё ложь Теперь о примере: Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой. Рассмотрим подробно 1 вариант: 21<25 - это правда 21<23 - это правда Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше. 21<22 - это правда 21>21 - это ложь В этих скобочках-ложь. А так как ложь и правда в И являются ложью, нам не подходит данный вариант 2 вариант-верный ответ, т.к.: 22<25 - это правда 22<23 - это правда В первых скобочках правда 22<22 - это ложь 22>21 - это правда И в этих скобках правда. Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой. 3 и 4 посмотрите сами и убедитесь что это ложь.
Var mas:array[1..1000, 1..1000] of integer; N,i,j,sum:integer;
Begin Writeln('Введите размер матрицы N*N'); Write('N = ');readln(N); if (N>1000) or (N<1) then Writeln('Ошибка, указанные значения выходят за пределы матрицы') else Begin Writeln('Введите элементы матрицы'); sum:=0; for i:=1 to N do for j:=1 to N do Begin readln(mas[i,j]); if (mas[i,j] mod 2 <> 0) then sum:=sum+mas[i,j]; end;
Writeln(); Writeln('Исходная матрица'); for i:=1 to N do Begin for j:=1 to N do Begin Write(mas[i,j], ' '); end; Writeln(); end;
Writeln(); Writeln('Сумма нечетных элементов = ',sum);
Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и).
Таблица истинности импликации(стрелочки):
0 0 1
0 1 1
1 0 0
1 1 1
Общее правило: если a<=b, тогда правда
Таблица истинности конъюнкции(/\):
0 0 0
0 1 0
1 0 0
1 1 1
Общее правило: если есть одна ложь-всё ложь
Теперь о примере:
Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой.
Рассмотрим подробно 1 вариант:
21<25 - это правда
21<23 - это правда
Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше.
21<22 - это правда
21>21 - это ложь
В этих скобочках-ложь.
А так как ложь и правда в И являются ложью, нам не подходит данный вариант
2 вариант-верный ответ, т.к.:
22<25 - это правда
22<23 - это правда
В первых скобочках правда
22<22 - это ложь
22>21 - это правда
И в этих скобках правда.
Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой.
3 и 4 посмотрите сами и убедитесь что это ложь.
uses crt;
Var mas:array[1..1000, 1..1000] of integer;
N,i,j,sum:integer;
Begin
Writeln('Введите размер матрицы N*N');
Write('N = ');readln(N);
if (N>1000) or (N<1) then
Writeln('Ошибка, указанные значения выходят за пределы матрицы') else
Begin
Writeln('Введите элементы матрицы');
sum:=0;
for i:=1 to N do
for j:=1 to N do
Begin
readln(mas[i,j]);
if (mas[i,j] mod 2 <> 0)
then sum:=sum+mas[i,j];
end;
Writeln();
Writeln('Исходная матрица');
for i:=1 to N do
Begin
for j:=1 to N do
Begin
Write(mas[i,j], ' ');
end;
Writeln();
end;
Writeln();
Writeln('Сумма нечетных элементов = ',sum);
end;
readln;
end.