Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 15:10   #1
Arfa
 
Регистрация: 09.06.2010
Сообщений: 3
Вопрос Комплексное задание на Pascal

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

Дружище! Это же нужно все писать. Кто же это будет делать задаром.
baster128 вне форума Ответить с цитированием
Старый 09.06.2010, 16:14   #3
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Turbo Pascal?? если нет то сделаю
Vikenty вне форума Ответить с цитированием
Старый 09.06.2010, 16:33   #4
Arfa
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию

Увы, Turbo Pascal.
Arfa вне форума Ответить с цитированием
Старый 10.06.2010, 17:27   #5
Arfa
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию

Код программы:
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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комплексное число Владимир_король Помощь студентам 1 10.05.2010 12:02
Задание по Тurbo Pascal Артём555 Паскаль, Turbo Pascal, PascalABC.NET 3 27.04.2010 21:10