11.Для логического выражения (А И В) ИЛИ НЕ В построить в тетради таблицу истинности. В ответ записать результат последнего столбца без пробелов, например 0110
Между двумя выражениями стоит операция ИЛИ, которая означает, что хотя бы одно из выражений должно быть истинным, чтобы всё выражение было истинным.
Возьмём первое выражение:
(Х < 3) и (X < 2)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть < 2, чтобы выражение было истинным
(1 < 3) и (1 < 2) - true [истина]
(0 < 3) и (0 < 2) - true [истина]
и т. д.
Возьмём второе выражение:
(X > 2) и (X > 0)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть > 2, чтобы выражение было истинным
(3 > 2) и (3 > 0) - true [истина]
(4 > 2) и (4 > 0) - true [истина]
и т. д.
Вернемся к тому, что между выражениями стоит операция ИЛИ, т. е. должны выполняться или левая, или правая часть. Приходим к итогу, что:
begin var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]); var n := ReadInteger('n->'); for var i := 4 downto 0 do begin k[i] := n div t[i];n := n mod t[i]; end; if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end; if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then begin k[0] := 0;k[1] := 0;inc(k[2]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then begin k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then begin k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]); end;
for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]); end.
x > 2
x < 2
Объяснение:
Операция И имеет приоритет перед операцией ИЛИ
((Х < 3) и (X < 2)) или ((X > 2) и (X > 0))
Между двумя выражениями стоит операция ИЛИ, которая означает, что хотя бы одно из выражений должно быть истинным, чтобы всё выражение было истинным.
Возьмём первое выражение:
(Х < 3) и (X < 2)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть < 2, чтобы выражение было истинным
(1 < 3) и (1 < 2) - true [истина]
(0 < 3) и (0 < 2) - true [истина]
и т. д.
Возьмём второе выражение:
(X > 2) и (X > 0)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть > 2, чтобы выражение было истинным
(3 > 2) и (3 > 0) - true [истина]
(4 > 2) и (4 > 0) - true [истина]
и т. д.
Вернемся к тому, что между выражениями стоит операция ИЛИ, т. е. должны выполняться или левая, или правая часть. Приходим к итогу, что:
x > 2x < 2//Версия 3.3, сборка 1634 (14.02.2018)
begin
var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]);
var n := ReadInteger('n->');
for var i := 4 downto 0 do
begin
k[i] := n div t[i];n := n mod t[i];
end;
if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end;
if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then
begin
k[0] := 0;k[1] := 0;inc(k[2]);
end;
if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then
begin
k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]);
end;
if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then
begin
k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]);
end;
for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]);
end.
Пример(1):
n-> 37
1 билет(ов)- 0 штук(а)
5 билет(ов)- 0 штук(а)
10 билет(ов)- 0 штук(а)
20 билет(ов)- 0 штук(а)
60 билет(ов)- 1 штук(а)
Пример(2):
n-> 35
1 билет(ов)- 0 штук(а)
5 билет(ов)- 1 штук(а)
10 билет(ов)- 1 штук(а)
20 билет(ов)- 1 штук(а)
60 билет(ов)- 0 штук(а)