Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
1

Определить точку, которая ближе всего расположена к началу координат

01.04.2010, 16:58. Просмотров 1142. Ответов 12
Метки нет (Все метки)

Уважаемые форумчане помогите решить эту сложную задачу непойму как она делается.

Задание:
Заданы координаты 2 точек A(x1,y1) и B(x2,y2). Определить имя точки, которая ближе всего разплоожена к началу координат.

Как зделать незнаю кто знает помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2010, 16:58
Ответы с готовыми решениями:

Составить алгоритм, определяющий, которая из точек находится ближе к началу координат
Можно ли это решить с использованием RadioGroup, если да , то дайте подсказку...

Определить, какая из двух точек ближе к началу координат
Решены две задачки в паскале. Нужно переделать в Делфи. Просьба знающим людям...

Определить ближайшую к началу координат точку плоскости из трех заданных
млин..кто может хелп ми!!! дали задачу...-определить ближайшую к началу...

Узнать которая из двух последних точек (В или С) расположена ближе к А
Разработать программное обеспечение а котором следующие: на числовой осе...

Определить, какое слово - максимальной или минимальной длины - находится ближе к началу строки
Помогите срочно!!! Пожалуйста помогите.... только нужно выполнять с объектами...

12
NeonSimfi
36 / 36 / 11
Регистрация: 30.04.2009
Сообщений: 90
01.04.2010, 18:20 2
Delphi
1
2
3
4
  function Len(x, y: Integer): Real;
  begin
    Result := sqrt(sqr(x) + sqr(y));
  end;
Ф-ия вычисляет расстояние от точки до начала координат. Подставляйте свои значения и сравнивайте их...
0
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
01.04.2010, 18:48  [ТС] 3
А можно по подробней ?, а то я не очень понял.
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 19:02 4
после строки private вписывашь это:
Delphi
1
function Len(x, y: Integer): Real;
и нажимаешь Crtl+Shift+C.
В появившемся коде вписываешь:
Delphi
1
2
3
  begin
    Result := sqrt(sqr(x) + sqr(y));
  end;
а затем в коде кнопки пишешь:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
begin
Len1:=Len(x1,y1);//растояние 1 точки от начала координат
Len2:=Len(x2,y2);//растояние 2 точки от начала координат
 
If Len1<len2 then
ShwoMessage('1 точка ближе')
else
ShwoMessage('2 точка ближе');
end;
и в итоге у тебя должен получится такой код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  private
  function Len(x, y: Integer): Real;
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  len1, len2 : real;
  x1, x2, y1, y2 : integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Len1:=Len(x1,y1);
Len2:=Len(x2,y2);
 
If Len1<len2 then
ShwoMessage('1 точка ближе')
else
ShwoMessage('2 точка ближе');
end;
 
function TForm1.Len(x, y: Integer): Real;
begin
Result := sqrt(sqr(x) + sqr(y));
end;
1
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
01.04.2010, 19:43  [ТС] 5
Спасибо огромное всё понял

Добавлено через 29 минут
А как мне же нужно там вводить и выводить с помощью MaskEdit как мне зделать в коде который вы выложили ?

А вот эта програма на Паскале но в Делфи немогу её перевести.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Program M1_C_2;
uses crt;
var nom,n,i,minx,miny,min:integer;
x,y:array [1..100] of integer;
Begin
clrscr;
     readln (n);
     randomize;
     for i:=1 to n do
begin
     x[i]:=random (20);
     y[i]:=random (20);
     writeln ('x[',i,']=',x[i],'y[',i,']=',y[i]);
end;
     min:=maxint;
     for i:=1 to n do
     if (sqr(x[i])+sqr(y[i])<min) then
begin
     min:=sqr(x[i])+sqr(y[i]);
     nom:=i;
     minx:=x[i];
     miny:=y[i];
end;
    writeln ('Tochka nomer',nom,',x=',minx,'y=',miny);
    readln;
End.
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 20:31 6
А как выводить с помощью MaskEdit????

Добавлено через 18 минут
Кинь на форму 2 MaskEdit.
В ObjectInspector'e у MaskEdit в пункте EditMask напиши вот это: "0000:0000;1;_"(без кавычек)
Затем в коде кнопки перед этими 2 строчками:
Delphi
1
2
Len1:=Len(x1,y1);
Len2:=Len(x2,y2);
впиши вот это:
Delphi
1
2
3
4
5
x1:=StrToInt(Copy(MaskEdit1.Text, 1, pos(':', MaskEdit1.Text)-1));
y1:=StrToInt(Copy(MaskEdit1.Text, pos(':', MaskEdit1.Text)+1, Length(MaskEdit1.Text)-pos(':', MaskEdit1.Text)));
 
x2:=StrToInt(Copy(MaskEdit2.Text, 1, pos(':', MaskEdit2.Text)-1));
y2:=StrToInt(Copy(MaskEdit2.Text, pos(':', MaskEdit2.Text)+1, Length(MaskEdit2.Text)-pos(':', MaskEdit2.Text)));
Это только ввод, а вывод скажешь как, я помогу организовать.
1
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
01.04.2010, 21:24  [ТС] 7
Вывод должен быть такой выводит название точки и её координаты
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 21:45 8
Небольшая поправочка, если координаты точек - 2значные числа то измени "0000:0000;1;_" на "00:00;1;_"количество "0" до и после ":" равняется количеству цифр до и после ":".
Например если значение должно быть 1234:1234 то пишешь так "0000:0000;1;_", а если
123:123 то так "000:000;1;_", а если 1:123, то "0:000;1;_"(думаю понял).
Как сделать вывод через MaskEdit не знаю, можешь сделать так:

Delphi
1
2
3
4
If Len1<len2 then
ShwoMessage('Ближе точка №1('+IntToStr(x1)+';'+IntToStr(y1)+')')
else
ShwoMessage('Ближе точка №2('+IntToStr(x2)+';'+IntToStr(y2)+')');
1
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
01.04.2010, 23:27  [ТС] 9
Вот - [Error] Unit1.pas(49): Undeclared identifier: 'ShwoMessage' что тут не так ?
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 23:28 10
это я ошибся, правильно вот так: ShowMessage
1
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
01.04.2010, 23:44  [ТС] 11
Я наверно вас замучел

Вот что теперь - Project Project2.exe reised exception class EConverterError with massage 'is not valid integer value'.
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 23:54 12
Цитата Сообщение от TP7 Посмотреть сообщение
Я наверно вас замучел
да нет
Цитата Сообщение от TP7 Посмотреть сообщение
Project Project2.exe reised exception class EConverterError with massage 'is not valid integer value'
значит поле MaskEdit было не полностью заполнено. Там для каждой длины нужно свою маску
я уже писал об этом в этом посте - Ссылка
1
TP7
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 93
02.04.2010, 00:54  [ТС] 13
ВСЁ ЗДЕЛАЛ ОГРОМНОЕ ВАМ СПАСИБО
0
02.04.2010, 00:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2010, 00:54

Массивы: определение координат точки, наиболее приближенной к началу координат
На плоскости 100 точек заданы своими координатами Х, Y. Составить программу для...

Написать программу, определяющую номера точек, расположенных ближе всего друг к другу, среди n заданных точек
Помогите решить, курсач горит! Напи¬сать программу, определяющую номера...

Указать точку, находящуюся на минимальном расстоянии от начала координат
Даны N точек трёхмерного пространства (заданы их названия и координаты)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru