// PascalABC.NET 3.0, сборка 1144 от 16.01.2016 type Point=record x,y:real end;
function GetPoint(c:char):Point; begin Writeln('Введите координаты точки ',c,':'); Read(Result.x,Result.y) end;
function Line(A,B:Point):real; begin Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y)) end;
function SqTriangle(pA,pB,pC:Point):real; begin var a:=Line(pB,pC); var b:=Line(pA,pC); var c:=Line(pA,pB); if (a+b>c) and (a+c>b) and (b+c>a) then begin var p:=(a+b+c)/2; Result:=sqrt(p*(p-a)*(p-b)*(p-c)) end else Result:=0 end;
begin var A:=GetPoint('A'); var B:=GetPoint('B'); var C:=GetPoint('C'); Writeln('Площадь треугольника равна ',SqTriangle(A,B,C)) end.
Тестовое решение: Введите координаты точки A: -5 3.18 Введите координаты точки B: 1.45 6.2 Введите координаты точки C: 6 -5.93 Площадь треугольника равна 45.98975
1) (1 & 0 ∨ 1) ∨ 0 = 1
2) 1 ∨ 0 ∨ (1 & 1) = 1
3) (0 ∨ 1) & 1 = 1
4) 0 ∨ (1 & 1) & 1 = 1
5) ((1 & 0) ∨ (1 ∨ 1)) & (0 ∨ 1) = 1
Объяснение:
1) (1 & 0 ∨ 1) ∨ 0 = (0 ∨ 1) ∨ 0 = 1 ∨ 0 = 1
2) 1 ∨ 0 ∨ (1 & 1) = 1 ∨ 0 ∨ 1 = 1 ∨ 1 = 1
3) (0 ∨ 1) & 1 = 1 & 1 = 1
4) 0 ∨ (1 & 1) & 1 = 0 ∨ 1 & 1 = 0 ∨ 1 = 1
5) ((1 & 0) ∨ (1 ∨ 1)) & (0 ∨ 1) = (0 ∨ 1) & (0 ∨ 1) = 1 & 1 = 1
Общий порядок действий:
1) скобки
2) НЕ (¬, черта над выражением) - значение противоположно исходному высказыванию
3) И (&) - истинно, когда оба исходных высказывания истинны
4) ИЛИ (∨) - ложно, когда оба исходных высказывания ложны