\/ - дизъюнкция(логическое сложение) - При сложении 1 и 1, 1 и 0, 0 и 1 получается всегда Истинна. Ложь только в случае сложения 0 и 0.
/\ - конъюнкция (логическое умножение) - При умножении будет истинна только в случае 1 /\ 1 , во всех остальных случаях - Ложь.
Берём первое выражение: X \/ ¬Y \/ Z (Х + (отрицание от Y) + Z
Подставляем значения из таблицы, каждую строчку.
1) 1 1 1 1 : 1 + 0 + 1 = 1 - верно, значит выражение к первой строчке таблицы подходит. Можно заметить, что в таблице X - всегда = 1 и в выражении, оно стоит без отрицания, значит можно сделать вывод, что выражение всегда будет истинно, что и показано в таблице ⇒ в первом ответ: 1) P.s. Ну можно проверить и остальные по желанию.
2. ~ - эквивалентность - значения равны.
→ - импликация - Ложь будет только в случае 1 → 0, во всех остальных -истинна.
Делаем всё тоже, что и в первой задаче.
1) (X~Z) /\ ( ¬X→Y)
1 0 1 0 : ( 1 ~ 1) /\ (0→0)
(1)/\(1) = 1 - Неверно, первая строка не совпала, дальше можно не проверять.
4) (Ну я каждое разбирать не буду, сразу к 4-му выражению перейду)
if(s[p] = '-') and (p <> 1) then begin f:=0; break; end; // Проверка на знак "-" в строке
if(s[p] = '.') then begin f:=2; inc(k); end; // K считает кол-во точек
if(k > 1) then begin f:=0; break; end; // Если точек 2 => f:=0;
if(s[p].IsDigit = false) and (s[p] <> '.') and (s[p] <> '-') then begin f:=0; break; end; // IsDigit - функция, которая проверяет является ли символ числом.
1. 1) 2. 4)
Объяснение:
1. У нас есть таблица истинности.
Берём каждое выражение и сверяем его с таблицей.
1 -истина ; 0 - ложь
\/ - дизъюнкция(логическое сложение) - При сложении 1 и 1, 1 и 0, 0 и 1 получается всегда Истинна. Ложь только в случае сложения 0 и 0.
/\ - конъюнкция (логическое умножение) - При умножении будет истинна только в случае 1 /\ 1 , во всех остальных случаях - Ложь.
Берём первое выражение: X \/ ¬Y \/ Z (Х + (отрицание от Y) + Z
Подставляем значения из таблицы, каждую строчку.
1) 1 1 1 1 : 1 + 0 + 1 = 1 - верно, значит выражение к первой строчке таблицы подходит. Можно заметить, что в таблице X - всегда = 1 и в выражении, оно стоит без отрицания, значит можно сделать вывод, что выражение всегда будет истинно, что и показано в таблице ⇒ в первом ответ: 1) P.s. Ну можно проверить и остальные по желанию.
2. ~ - эквивалентность - значения равны.
→ - импликация - Ложь будет только в случае 1 → 0, во всех остальных -истинна.
Делаем всё тоже, что и в первой задаче.
1) (X~Z) /\ ( ¬X→Y)
1 0 1 0 : ( 1 ~ 1) /\ (0→0)
(1)/\(1) = 1 - Неверно, первая строка не совпала, дальше можно не проверять.
4) (Ну я каждое разбирать не буду, сразу к 4-му выражению перейду)
(X~Z) /\ ¬ (Y→Z)
1 0 1 0: (1 ~ 1)/\¬(0→1) : (1)/\¬(1) : 1/\0 = 0 -Первая строка совпала.
0 1 0 1: (0~0)/\¬(1→0) : (1)/\¬(0) : 1/\1 = 1 - Вторая строка совпала
1 1 1 0: (1~1)/\¬(1→1) : (1)/\¬(1) : 1/\0 = 0- Третья строка совпала
Значит ответ 4)
uses PT4;
var k,p:integer;
begin
Task('String19');
var s:= ReadString;
var f:=1;
for p:=1 to s.Length do begin
if(s[p] = '-') and (p <> 1) then begin f:=0; break; end; // Проверка на знак "-" в строке
if(s[p] = '.') then begin f:=2; inc(k); end; // K считает кол-во точек
if(k > 1) then begin f:=0; break; end; // Если точек 2 => f:=0;
if(s[p].IsDigit = false) and (s[p] <> '.') and (s[p] <> '-') then begin f:=0; break; end; // IsDigit - функция, которая проверяет является ли символ числом.
end;
print(f);
end.