fmba18
?>

Два прямоугольных треугольника заданы своими катетами. определить, у какого из них площадь больше (создать функцию для вычисления площади прямоугольного треугольника по его катетам

Информатика

Ответы

lider123
// 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
Код в 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.
Гаврилаш
Используется формула Гаусса (формула "шнурования").

// 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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Два прямоугольных треугольника заданы своими катетами. определить, у какого из них площадь больше (создать функцию для вычисления площади прямоугольного треугольника по его катетам
Ваше имя (никнейм)*
Email*
Комментарий*