Как мы знаем перимитр это сумма всех сторон фигуры, для нахождения перимитра прямоугольника мы суммируем все стороны прямоугольника но мы сократим это: вместо того чтобы писать P=a+b+c+d мы сократим это до P=(a+b)*2.
С треугольником тоже самое
Ещё при return мы должны возвращать число а не строку, если бы мы умножили строку было бы так:
a = "Привет!"
print(a*2)
Результат: Привет!Привет!
Из-за этого мы используем int() конвертируя "строковое число" в число
// 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
def pramougolnik(a, b):
return (int(a) + int(b)) * 2
def treugolnik( a, b, c ):
return int(a) + int(b) + int(c)
a = input("Введите ширину прямоугольника")
b = input("Введите высоту прямоугольника")
print("Периметр прямоугольника равен: ", pramougolnik(a, b))
a = input("Введите 1 сторону треугольника")
b = input("Введите 2 сторону треугольника")
c = input("Введите 3 сторону треугольника")
print("Периметр треугольника равен: ", treugolnik(a, b, c))
Объяснение:
Как мы знаем перимитр это сумма всех сторон фигуры, для нахождения перимитра прямоугольника мы суммируем все стороны прямоугольника но мы сократим это: вместо того чтобы писать P=a+b+c+d мы сократим это до P=(a+b)*2.
С треугольником тоже самое
Ещё при return мы должны возвращать число а не строку, если бы мы умножили строку было бы так:
a = "Привет!"
print(a*2)
Результат: Привет!Привет!
Из-за этого мы используем int() конвертируя "строковое число" в число
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