
25.03.2008, 13:32
|
|
Познавший АНТИЧАТ
Регистрация: 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..
|
|
|