Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Вниз

программа на координаты   Найти похожие ветки 

 
opashka ©   (2013-12-02 11:59) [0]

раньше программировала в паскале. сейчас дали задачу на  Delphi. помогите пожалуйста - язык для знаком лишь отчасти.
Задача.
Для задания координат точки на плоскости использовать запись с 2 полями.
1) Задать координаты не более 10 точек. Найти самые удаленные от начала координат точки
2) вывести список расстояний точек от начала координат, предварительно упорядочив его по убыванию
использование функций и процедур является необходимым условием


 
Германн ©   (2013-12-02 12:05) [1]


> раньше программировала в паскале. сейчас дали задачу на
>  Delphi

Ничего специфического именно для Дельфи в задании нет. Паскалевское решение подойдет почти один в один. Только тип real заменить на что-нибудь более современное.


 
opashka ©   (2013-12-02 12:20) [2]

и все-таки... насколько я поняла, то многие вещи в Delphi упрощаются, например та же самая сортировка.
Если можно - полностью пример программы - хочу для себя разобраться и сравнить наверняка


 
Плохиш ©   (2013-12-02 12:26) [3]


> Если можно - полностью пример программы

Можно, но надо обговорить цену.


 
brother ©   (2013-12-02 12:34) [4]

> полностью пример программы

кхм...


 
[ВладОшин] ©   (2013-12-02 12:43) [5]

file- new- other - consol application
и пиши как на паскале
потом покажешь, если что не получилось - подскажем


> Если можно - полностью пример программы

нет :)
Помогают тут бесплатно. А выполнять вместо - за тугрики :)


 
И. Павел ©   (2013-12-02 13:50) [6]

>
> [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 в квадрате.


 
Ega23 ©   (2013-12-02 14:21) [7]

Сессия близится...


 
Jeer ©   (2013-12-02 15:21) [8]

Одну процедуру подкину:

"С миру по нитке - и будешь богат,
Возникнет свой собственный Халифат,
Гарем и прислужники, страсть и молва,
Сумеют раздеть опять догола."

(С) 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 15:38) [9]

У меня ещё где-то IncDay была. Так, для коллекции.


 
брат Птибурдукова   (2013-12-02 15:52) [10]


> Ega23 ©   (02.12.13 15:38) [9]
Оно? http://www.guildalfa.ru/alsha/comment/reply/6


 
Ega23 ©   (2013-12-02 16:03) [11]


> Оно? http://www.guildalfa.ru/alsha/comment/reply/6


Да. Но у Sha она в 2009-м была добавлена, реальная-то году в 2002-м появилась.


 
Jeer ©   (2013-12-02 16:05) [12]

Дистанция на плоскости не интересна, тривиальна.
Вот - на эллипсе ( приближенный ):

//** Расчет длины дуги [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;


 
Sha ©   (2013-12-03 10:07) [13]

> Ega23 ©   (02.12.13 16:03) [11]
> Да. Но у Sha она в 2009-м была добавлена,

Ага, тогда искал более быстрый вариант Now, и оно мне вспомнилось.


 
Ega23 ©   (2013-12-03 10:46) [14]


> Ага, тогда искал более быстрый вариант Now, и оно мне вспомнилось.


Я к сожалению не сумел сохранить описание к ней. Описание было не менее ржачное.


 
Inovet ©   (2013-12-03 11:19) [15]

> [14] Ega23 ©   (03.12.13 10:46)

Неужели в сети не сохранилось.


 
Ega23 ©   (2013-12-03 11:25) [16]


> Неужели в сети не сохранилось.

Не нашёл.


 
Inovet ©   (2013-12-03 11:34) [17]

> [16] Ega23 ©   (03.12.13 11:25)
> Не нашёл.

Я недавно тоже только у Sha находил, но дальше и не искал. Такие шедевры должны в мировом пантеоне сакральных знаний храниться.


 
Sha ©   (2013-12-03 12:01) [18]

> Ega23 ©   (03.12.13 10:46) [14]

ну так там в одном флаконе:
http://www.guildalfa.ru/alsha/node/6

Jeer ©   (02.12.13 15:21) [8]

Кстати, Седжвик рекомендует ряд шагов 4^(i+1) + 3*2^i + 1


 
Ega23 ©   (2013-12-03 12:13) [19]


> ну так там в одном флаконе:


Нееее... Там были комментарии от автора IncDay. Типа, он в банковской сфере работает, отчёты какие-то клепает. И был неприятно удивлён: IncYear, IncMonth, etc - есть, а вот IncDay - нету. Решил восполнить пробел.
В общем, текст с побудительными мотивами доставлял не менее, чем сама IncDay.


 
Sha ©   (2013-12-03 12:15) [20]

> Jeer ©   (02.12.13 15:21) [8]

Странно и в вике его нет почему-то, вот ссылка:
http://www.cs.princeton.edu/~rs/shell/paperF.pdf


 
Sha ©   (2013-12-03 12:20) [21]

> Ega23 ©   (03.12.13 12:13) [19]

Это я пропустил, жаль.

У меня оно на стене висело.
Всем кто приходил, включая начальство, говорили типа шедевр.
Кивали головой и уходили.
Пришлось снять, когда кое-кто из приходящих решил изучить код повнимательнее.


 
Ega23 ©   (2013-12-03 12:24) [22]


> У меня оно на стене висело.
> Всем кто приходил, включая начальство, говорили типа шедевр.


Вот и у меня также было. Сама функция была спасена, а вот обсуждение, к сожалению, кто-то выпилил.


 
Sha ©   (2013-12-03 12:43) [23]

IncDay   dmi     05.01.03 20:21
При создании бухгалтерской программы я столкнулся с
необходимостью изменить значение даты (класс TDateTime) путем добавления количества дней. Но в Delphi готовой функции не оказалось. Просмотрев в Delphi7 исходный текст функции IncMonth (добавление месяцев к дате), я решил создать функцию IncDay (добавление дней к дате).
Если у кого-то возникла подобная проблема, готов поделиться "исходником".


 
Ega23 ©   (2013-12-03 13:44) [24]

ДА! Это оно!


 
Вася   (2013-12-03 17:35) [25]

Дайте почитать!!!


 
Вася   (2013-12-03 17:36) [26]

Все, нашел


 
Вася   (2013-12-03 17:41) [27]

Не качается, а я надеялся увидеть код хуже чем мой...


 
Jeer ©   (2013-12-03 17:55) [28]

>Странно и в вике его нет почему-то, вот ссылка:

Да, вроде вполне известный алгоритм сортировки.
Дает гарантированное время, а, в случае сильно упорядоченных данных, даже лучше чем quick-sort.

Кроме Седжвика, были еще последователи, улучшавшие алгоритм тем или иным выбором дистанции.
http://sun.aei.polsl.pl/~mciura/publikacje/shellsort.pdf

Как-то, с одной из моих дипломных студенток, мы "нарисовали" тест-модуль различных видов сортировка для обоснования его выбора.
Наступило хорошее прояснение отличий.

http://s017.radikal.ru/i411/1312/a4/563377dffde9.jpg

Сравнительная таблица:
http://s020.radikal.ru/i715/1312/61/e5648201fda0.jpg


 
Jeer ©   (2013-12-03 17:59) [29]

Сравнение:
http://s017.radikal.ru/i423/1312/4f/aa706f6001c9.jpg


 
Sha ©   (2013-12-03 19:42) [30]

> Jeer ©   (03.12.13 17:55) [28]

Я не о самом алгоритме, а о способе выбора приращений.
От него скорость сильно зависит.

Седжвик улучшал его дважды.
Первое улучшение (на которое дал ссылку) было самым значительным.
Но его вика почему-то забыла.
Второе еще совсем немного улучшает, не меняя O(). Но о нем все помнят.


 
Sha ©   (2013-12-03 19:45) [31]

Причем для малых массивов первый вариант даже чуть лучше.


 
Jeer ©   (2013-12-03 20:22) [32]

Согласен.
Для студентов эта информация была не основной, да и здесь я привел "стандартный" вариант Shell-а от 1959 г. :)


 
Dennis I. Komarov ©   (2013-12-04 17:15) [33]


> http://www.guildalfa.ru/alsha/node/6

Шикарно!
:)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2014.12.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.003 c
2-1386138564
Fan
2013-12-04 10:29
2014.12.21
Отображение вибрации в делфи


15-1400664566
Лактоза
2014-05-21 13:29
2014.12.21
CustomDrawTreeView.pas


15-1386965596
Jeer
2013-12-14 00:13
2014.12.21
Феномен Стругацких или..?


2-1386226163
TheOwl
2013-12-05 10:49
2014.12.21
удалить из списка не дубликаты


11-1255823579
Ruzzz
2009-10-18 03:52
2014.12.21
Кол-во строк в Memo никогда не бывает 0





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский