Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 30.06.2013, 23:19   #1
getredtm
Новичок
 
Регистрация: 30.06.2013
Сообщений: 2
Репутация: 10
По умолчанию Даны координаты точек n на плоскости. Найти номера двух точек, расстояние между которыми наибольшее.

Здравствуйте. Помогите пожалуйста с задачей. Мне нужно описать процедуру, а я понятия не имею как это делать(((
Сама задача: Даны координаты n точек на плоскости x1,y1,...,xn,yn (n=20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара точек единственная). Описать процедуру.
Код:

Program POints;
const NMax=20;
var x,y:array[1..NMax] of double; ii,jj,Na,Nb: integer;
  RMax,Rast: double;
begin randomize;
  writeln('     Таблица координат');
  writeln('№':4,'  X  ':8,'   Y   ':8 );
  for ii:=1 to NMax do
    begin
      X[ii]:= (random - 0.5)*200;
      Y[ii]:= (random - 0.5)*200;
      writeln(ii:4,X[ii]:8:2,Y[ii]:8:2);
    end;
  RMax:= 0;
  for ii:=1 to NMax do
    for jj:=ii+1 to NMax do
      begin
        Rast:= sqrt(sqr(X[ii]-X[jj])+sqr(Y[ii]-Y[jj]));
        if (ii=1) and (jj=2) then RMax:=Rast;
        if Rast >= RMax then
          begin
            RMax:= Rast; Na:=ii; Nb:=jj;
            write('+')
          end else write('-');
        writeln(ii:4,jj:4,Rast:8:3);
      end;
   writeln('---- Результат: ------ ');
   writeln('Макс.расстояние = ',RMax:8:3,' точки: ',Na:3,' и ',Nb);
   readln;
end.

getredtm вне форума   Ответить с цитированием
Старый 01.07.2013, 00:20   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 22,797
Репутация: 5078
По умолчанию

ну, вполне себе рабочий код. (за исключением не совсем понятного вывода плюсиков и минусиков в цикле)
Вы эту программу сами написали?
Тогда в чём проблема описать процедуру?!
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 01.07.2013, 00:23   #3
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,121
Репутация: 589
По умолчанию

Например, ...
Код:

Program POints;
const NMax=20;
type Tmas = array[1..NMax, 1..NMax] of real;
Procedure MaxDist(XY : Tmas; var i, j : integer);
{процедура возвращает только номера точек}
{между которыми максимальное расстояние}
var m, n : integer;
     a, max : real;
begin
   max := sqr(XY[1,1] - XY[2,1]) + sqr(XY[1,2] - XY[2,2]);
   i := 1; j := 2;
   for m := 1 to NMax - 1 do
      for n := m + 1 to NMax do begin
         a := sqr(XY[m,1] - XY[n,1]) + sqr(XY[m,2] - XY[n,2]);
         if a > max then begin
            max := a;
            i := m; j := n;
         end;
     end;
end;

var mas : Tmas;
     ii, jj : integer;
begin
  randomize;
  writeln('     Таблица координат');
  writeln('№':4,'  X  ':8,'   Y   ':8 );
  for ii:=1 to NMax do
    begin
      mas[ii,1]:= (random - 0.5)*200;
      mas[ii,2]:= (random - 0.5)*200;
      writeln(ii:4,mas[ii,1]:8:2,mas[ii,2]:8:2);
    end;
   MaxDist(mas, ii, jj);
   writeln('Макс.расстояние между точками: ', ii:3,' и ',jj:3);
   readln;
end.


Не проверял на компиляцию.

Но... Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Старый 01.07.2013, 01:47   #4
getredtm
Новичок
 
Регистрация: 30.06.2013
Сообщений: 2
Репутация: 10
По умолчанию

Я вообще не знаю просто что такое процедура(((

ViktorR, мне ее надо просто написать от руки, препод на экзамене так смотрит(((

Спасибо, приду после экзамена, напишу результат!

Последний раз редактировалось Stilet; 01.07.2013 в 08:28.
getredtm вне форума   Ответить с цитированием
Ответ



Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны координаты n точек на плоскости. Найти номера двух точек, расстояние между которыми наибольшее. Viwwna Паскаль 2 19.11.2011 06:33
дано два множества точек.Найти пересечение и разность этих множеств.Координаты точек X и Y вводить с клав Degster Паскаль 1 23.05.2011 16:35
Наибольшее расстояние между парой точек. C++ LaDark Помощь студентам 3 02.11.2010 11:34
Найти номера пары точек, расстояние между которыми наибольшее evgenext Помощь студентам 1 02.07.2010 22:46
Найти номера пары точек, расстояние между которыми наибольшее Nevis Помощь студентам 5 21.06.2009 23:37




07:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru