Два прямоугольных треугольника заданы своими катетами. определить, у какого из них площадь больше (создать функцию для вычисления площади прямоугольного треугольника по его катетам
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 function FS(a,b:real):=0.5*a*b; begin var a,b:real; Write('Катеты первого треугольника: '); Read(a,b); var S1:=FS(a,b); Write('Катеты второго треугольника: '); Read(a,b); var S2:=FS(a,b); if S1>S2 then Writeln('Площадь первого треугольника больше') else if S1<S2 then Writeln('Площадь второго треугольника больше') else Writeln('Площади треугольников равны') end.
Тестовое решение Катеты первого треугольника: 4.18 6 Катеты второго треугольника: 5.4 3.9 Площадь первого треугольника больше
annasolod
21.11.2020
Код в Turbo Pascal: USES Graph,CRT; VAR x,y,dx,dy,Device,Mode,i: Integer; BEGIN Device:=0; InitGraph(Device,Mode,''); x:=10; y:=10; dx:=1; dy:=1; i:=1; Repeat SetColor(Cyan); Circle(x,y,10); SetFillStyle(1,3); FloodFill(x,y,Cyan); Delay(10); SetColor(Black); Circle(x,y,10); SetFillStyle(1,0); FloodFill(x,y,Black); x:=x+dx; y:=y+dy; if (x>300) OR (y>200) then begin x:=10; y:=10; i:=i+1; end;
until i>5; END.
Гаврилаш
21.11.2020
Используется формула Гаусса (формула "шнурования").
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
- с функцией:
function SPolygonGauss(a:array of real):real; // Возвращает вычисленную по формуле Гаусса площадь многоугольника, // координаты вершин которого заданы массивами х и у begin var (n,i):=(a.Length-4,0); Result:=0.0; while i<=n do begin Result+=a[i]*a[i+3]-a[i+1]*a[i+2]; i+=2 end; Result:=Abs(0.5*Result) end;
begin var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10); SetLength(x,12); x[10]:=x[0]; x[11]:=x[1]; Writeln('Площадь равна ',SPolygonGauss(x)) end.
Пример Введите координаты вершин 5-угольника: 0.6 2.1 1.8 3.6 2.2 2.3 3.6 2.4 3.1 0.5 Площадь равна 3.915
- с процедурой:
procedure SPolygonGauss(a:array of real; var s:real); // Вычисляет по формуле Гаусса площадь многоугольника, // координаты вершин которого заданы массивами х и у begin var (n,i):=(a.Length-4,0); s:=0.0; while i<=n do begin s+=a[i]*a[i+3]-a[i+1]*a[i+2]; i+=2 end; s:=Abs(0.5*s) end;
begin var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10); SetLength(x,12); x[10]:=x[0]; x[11]:=x[1]; var s:real; SPolygonGauss(x,s); Writeln('Площадь равна ',s) end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Два прямоугольных треугольника заданы своими катетами. определить, у какого из них площадь больше (создать функцию для вычисления площади прямоугольного треугольника по его катетам
function FS(a,b:real):=0.5*a*b;
begin
var a,b:real;
Write('Катеты первого треугольника: '); Read(a,b);
var S1:=FS(a,b);
Write('Катеты второго треугольника: '); Read(a,b);
var S2:=FS(a,b);
if S1>S2 then Writeln('Площадь первого треугольника больше')
else
if S1<S2 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение
Катеты первого треугольника: 4.18 6
Катеты второго треугольника: 5.4 3.9
Площадь первого треугольника больше