Показать сообщение отдельно

  #337  
Старый 25.03.2008, 13:32
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

dos999
гыг, кто-то в школе плохо учился, не знает, что периметр - сумма длин всех сторон n-угольника
А по теме.
Pascal
Код:
program triangle;

type
  TPoint = record
    x, y : real;
  end;

function getlength (a, b : TPoint) : real;
begin
  getlength := sqrt (sqr (b.x - a.x) + sqr (b.y - a.y));
end;

function getperimeter (a, b, c : real) : real;
begin
  getperimeter := a + b + c;
end;

function getsquare (a, b, c, p : real) : real;
begin
  getsquare := sqrt (p * (p - a) * (p - b) * (p - c));
end;

var
  coords : array [1..3] of TPoint;
  len : array [1..3] of real;
  perim, square : real;
  i : byte;
begin
  coords[1].x := 1;
  coords[1].y := 1;
  coords[2].x := 2;
  coords[2].y := 2;
  coords[3].x := -2;
  coords[3].y := 2;
  len[1] := getlength (coords[1], coords[2]);
  len[2] := getlength (coords[2], coords[3]);
  len[3] := getlength (coords[1], coords[3]);
  perim := getperimeter (len[1], len[2], len[3]);
  square := getsquare (len[1], len[2], len[3], perim / 2);
  writeln (perim : 0 : 3);
  writeln (square : 0 : 3);
end.
C
Код:
#include <stdio.h>
#include <math.h>

struct TPoint
{
    float x, y;
};

float getlength (TPoint a, TPoint b)
{
  return sqrt ((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));
}

float getperimeter (float a, float b, float c)
{
  return (a + b + c);
}

float getsquare (float a, float b, float c, float p)
{
  return sqrt (p * (p - a) * (p - b) * (p - c));
}

int main ()
{
  TPoint coords [3];
  float len [3], perim, square;
  unsigned char i;

  coords[0].x = 1;
  coords[0].y = 1;
  coords[1].x = 2;
  coords[1].y = 2;
  coords[2].x = -2;
  coords[2].y = 2;
  len[0] = getlength (coords[0], coords[1]);
  len[1] = getlength (coords[1], coords[2]);
  len[2] = getlength (coords[2], coords[0]);
  perim = getperimeter (len[0], len[1], len[2]);
  square = getsquare (len[0], len[1], len[2], perim / 2);
  printf ("Perimeter: %.3f\nSquare: %.3f\n", perim, square);
  return 0;
}

Последний раз редактировалось krypt3r; 25.03.2008 в 14:10..
 
Ответить с цитированием