Показать сообщение отдельно
Старый 10.06.2010, 18:29   #2 (permalink)
Arfa
Новичок
 
Регистрация: 08.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Код программы:
Program ppp;
Uses crt;
Var
T: ARRAY [1..10, 1..2] of INTEGER;
i,j,k,N: INTEGER;
D: Array[1..360] of real;

PROCEDURE Rasst (Var X10,X11,X20,X21,X30, X31: Integer);
VAR a,b,d: real;
BEGIN
if (X20-X10=0) then begin
a:=0;
b:=X11;
end
else begin
a:=(X21-X11)/(X20-X10);
b:=(X11*(X20-X10)-X10*(X21-X11))/(X20-X10);
end;
Writeln('priamaia: y =', a:2:0, 'x+',b:2:0);
d:=Abs(a*X30-X31+b)/Sqrt(Sqr(a)+1);
Writeln ('rasstoianie= ', d:2:0);
{ReadLn;}
end;

FUNCTION Rst(Var X10,X11,X20,X21,X30, X31: Integer): REAL;
Begin
Rst:=Abs(((X21-X11)/(X20-X10))*X30-X31+(X11*(X20-X10)-X10*(X21-X11))/(X20-X10))/Sqrt(Sqr((X21-X11)/(X20-X10))+1);
End;

PROCEDURE swap(VAR x,y: real);
var t:real;
begin
t:=x;
x:=y;
y:=t
end;

BEGIN
clrscr;
Writeln('tochki T1, .. , T10: ');
for i:=1 to 10 do
for j:=1 to 2 do
Begin
T[i,1]:=i;
T[i,2]:=Random(I);
GotoXY(i,j+1);
Write(T[i,j], ' ');
End;
N:=0;
Readln;
for i:=1 to 10 do
for j:=i+1 to 10 do
for k:=1 to 10
do
begin
IF (k<>i) and (k<>j)
Then
begin
N:=N+1;
Writeln('nomer ', N);
Writeln('rasstoianie megdu priamoi', '(',T[i,1],T[i,2],')','(',T[j,1],T[j,2],')','i tochkoi(',T[k,1],T[k,2], ')');
Rasst(T[i,1],T[i,1], T[j,1],T[j,2], T[k,1],T[k,2]);
D[N]:=Rst(T[i,1],T[i,1], T[j,1],T[j,2], T[k,1],T[k,2]);
end;
end;
Readln;

Writeln('sortirovka:');
begin
for j:=1 to 359 do
for i:=1 to 360-j do
if D[i]>D[i+1] then
swap(D[i],D[i+1])
end;
for j:=1 to 360 do
Write(D[j]:2:0);
Readln;

END.

Нужно, чтобы точки считывались из файла, Представить результаты в виде файла из набора записей, включающих номер комбинации, координаты характерных точек, значения расстояний.
Представить результаты в виде графика зависимости значения расстояния от номера комбинации.
Arfa вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070