Дано натуральное число. б) Верно ли, что произведение его цифр меньше 50? Вот код
var n,p:integer;
begin
write('n = ');
readln(n);
p:=1;
while n>0 do
begin
p:=p*(n mod 10);
n:=n div 10;
end;
if p<=50
then writeln('Произведение цифр числа = ',p,' (<= 50)')
else writeln('Произведение цифр числа = ',p,' (> 50)');
end.
составить блок схему
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N;
cin >> N;
vector<int>negative;
vector<int>positive;
for (int i = 0; i < N; i++) {
int A;
cin >> A;
if (A < 0)
negative.push_back(A);
else
positive.push_back(A);
}
for (int i = 0; i < negative.size(); i++)
cout<< negative[i]<<" ";
for (int i = 0; i < positive.size(); i++)
cout << positive[i] << " ";
}
Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и).
Таблица истинности импликации(стрелочки):
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 посмотрите сами и убедитесь что это ложь.