• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Комплексное задание на Pascal

  • Автор темы Автор темы Arfa
  • Дата начала Дата начала

Arfa

Ученик
Регистрация
8 Июн 2010
Сообщения
2
Реакции
0
Баллы
0
Помогите с комплексным заданием на Pascal

Очень нужна помощь с заданием на Pascal к четвергу. Заранее спасибо всем, кто откликнется.
Задание:
1. Задать три точки. По двум точкам построить прямую и найти расстояние до третьей. Проиллюстрировать решение графически.
2. Ввести координаты точек из файла, записать результаты в файл.
3. Оформить программу в виде набора процедур.
4. Составить все возможные комбинации прямых и точек из десяти заданных точек, перенумеровать эти комбинации.
5. Ранжировать тройки в порядке возрастания расстояния между прямой и точкой.
6. Представить результаты в виде файла из набора записей, включающих номер комбинации, координаты характерных точек, значения расстояний.
7. Представить результаты в виде таблицы и в виде графика зависимости значения расстояния от номера комбинации.
8. Процедуры ранжирования и построения графика включить в модуль пользователя.
 
Последнее редактирование:
Код программы:
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>D[i+1] then
swap(D,D[i+1])
end;
for j:=1 to 360 do
Write(D[j]:2:0);
Readln;

END.

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