![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
программа на координаты [D2005]
opashka © (2013-12-02 11:59:00)раньше программировала в паскале. сейчас дали задачу на Delphi. помогите пожалуйста - язык для знаком лишь отчасти.
Задача.
Для задания координат точки на плоскости использовать запись с 2 полями.
1) Задать координаты не более 10 точек. Найти самые удаленные от начала координат точки
2) вывести список расстояний точек от начала координат, предварительно упорядочив его по убыванию
использование функций и процедур является необходимым условием
Sha (2013-12-03 10:07:00) [21]> Ega23 © (02.12.13 16:03) [11]
> Да. Но у Sha она в 2009-м была добавлена,
Ага, тогда искал более быстрый вариант Now, и оно мне вспомнилось.
Jeer (2013-12-02 16:05:00) [22]Дистанция на плоскости не интересна, тривиальна.
Вот - на эллипсе ( приближенный ):
//** Расчет длины дуги [km] на эллипсе между двумя точками с гео-координатами B1,L1 и B2,L2
// B,L - широта, долгота в градусах, соответственно.
// Погрешность <= 0.1% от длины дуги
function _Dist2Points_Ellipse(B1, L1, B2, L2: Double): Double;
var A,C, B, dB, dL: extended;
begin
dB := B2 - B1; dL := L2 - L1; B := 0.5*(B1 + B2);
if (B < 50) then A := 111.3 - B * (0.0156 * B + 0.023)
else A := 135.35 - B * (0.00586 * B + 0.978);
C := 110.44 + 0.014 * B;
Result := sqrt(sqr(dB*C) + sqr(dL*A));
end;
Ega23 (2013-12-02 16:03:00) [23]
> Оно? http://www.guildalfa.ru/alsha/comment/reply/6
Да. Но у Sha она в 2009-м была добавлена, реальная-то году в 2002-м появилась.
брат Птибурдукова (2013-12-02 15:52:00) [24]
> Ega23 © (02.12.13 15:38) [9]
Оно? http://www.guildalfa.ru/alsha/comment/reply/6
Ega23 (2013-12-02 15:38:00) [25]У меня ещё где-то IncDay была. Так, для коллекции.
Jeer (2013-12-02 15:21:00) [26]Одну процедуру подкину:
"С миру по нитке - и будешь богат,
Возникнет свой собственный Халифат,
Гарем и прислужники, страсть и молва,
Сумеют раздеть опять догола."
(С) Jeer
// Сортировка Шелла
procedure Sort_Shell(ar: TFloatArray);
var
i, j, N: integer;
T: boolean;
procedure _Swap;
var x: TFloat;
begin
x := ar[i]; ar[i] := ar[i + j]; ar[i + j] := x;
T := True;
end;
begin
N := Length(ar);
j := N div 2;
while j > 0 do begin
T := true;
while T do begin
T := false;
for i := 0 to N - j - 1 do
if (ar[i] > ar[i + j]) then _Swap();
end;
j := j div 2;
end;
end;
Ega23 (2013-12-02 14:21:00) [27]Сессия близится...
И. Павел (2013-12-02 13:50:00) [28]>
> [0] opashka © (02.12.13 11:59)
Вот небольшой обзор Delphi: http://www.vspu.ac.ru/~chul/program/delphi.pdf
Ну а если у вас вызывает затруднение сортировка массива, то вот: http://shiva16.narod.ru/Unit14.htm
После прочтения этих вещей по идее, вопросов остаться не должно.
PS: расстояние от точки с координатами (A, B) до начала координат, это корень из A в квадрате плюс B в квадрате.
[ВладОшин] (2013-12-02 12:43:00) [29]file- new- other - consol application
и пиши как на паскале
потом покажешь, если что не получилось - подскажем
> Если можно - полностью пример программы
нет :)
Помогают тут бесплатно. А выполнять вместо - за тугрики :)
brother (2013-12-02 12:34:00) [30]> полностью пример программы
кхм...
Плохиш (2013-12-02 12:26:00) [31]
> Если можно - полностью пример программы
Можно, но надо обговорить цену.
opashka (2013-12-02 12:20:00) [32]и все-таки... насколько я поняла, то многие вещи в Delphi упрощаются, например та же самая сортировка.
Если можно - полностью пример программы - хочу для себя разобраться и сравнить наверняка
Германн (2013-12-02 12:05:00) [33]
> раньше программировала в паскале. сейчас дали задачу на
> Delphi
Ничего специфического именно для Дельфи в задании нет. Паскалевское решение подойдет почти один в один. Только тип real заменить на что-нибудь более современное.