Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.06.2010, 13:38   #1 (permalink)
Arfa
Новичок
 
Регистрация: 08.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Помогите с комплексным заданием на Pascal

Очень нужна помощь с заданием на Pascal к четвергу. Заранее спасибо всем, кто откликнется.
Задание:
1. Задать три точки. По двум точкам построить прямую и найти расстояние до третьей. Проиллюстрировать решение графически.
2. Ввести координаты точек из файла, записать результаты в файл.
3. Оформить программу в виде набора процедур.
4. Составить все возможные комбинации прямых и точек из десяти заданных точек, перенумеровать эти комбинации.
5. Ранжировать тройки в порядке возрастания расстояния между прямой и точкой.
6. Представить результаты в виде файла из набора записей, включающих номер комбинации, координаты характерных точек, значения расстояний.
7. Представить результаты в виде таблицы и в виде графика зависимости значения расстояния от номера комбинации.
8. Процедуры ранжирования и построения графика включить в модуль пользователя.

Последний раз редактировалось Arfa; 08.06.2010 в 15:23
Arfa вне форума   Ответить с цитированием

Старый 08.06.2010, 13:38
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Люди интересуются одним и тем же, зачастую создают аналогичные темы

Задание в Pascal. Подскажите
Задание в паскале. Помогите с решением
Задание в паскале с кординатами
Задание в Паскале

Старый 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
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:26.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.