Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск 2 одинаковых элементов в массиве.


Страницы:   1 2 3

Leon-Z ©   (2011-03-03 20:35:00) 

Дан массив - Mas: array [1..10] of Integer;

В нем 2 числа одинаковые. Как максимально быстро найти их.
Я знаю 1 метод:

var
 mas: array [1..10] of Integer;
 i, j, index1, index2: Integer;
begin
 index1 := 0;
 index2 := 0;
// заполним массив случайными значениями
 Randomize;
 for i := 1 to 10 do mas[i] := Random(100);
 i := Random(9) + 1;
 mas[i] := 8;
 i := Random(9) + 1;
 mas[i] := 8;
// собственно поиск
 for i := 1 to 9 do
   for j := i + 1 to 10 do
     if mas[i] = mas[j] then
     begin
       index1 := i;
       index2 := j;
     end;
end;

Есть другие методы ?


Jeer   (2011-03-04 16:41:00) [1]

Удалено модератором


clickmaker   (2011-03-04 16:31:00) [2]

Удалено модератором


Jeer   (2011-03-04 16:30:00) [3]

Удалено модератором


Противный   (2011-03-04 15:52:00) [4]

Удалено модератором


clickmaker   (2011-03-04 15:28:00) [5]

Удалено модератором


Jeer   (2011-03-04 15:11:00) [6]

Удалено модератором


Anatoly Podgoretsky   (2011-03-04 11:00:00) [7]


> Сейчас goto не является необходимой, но пользуется.

Гены


Противный   (2011-03-04 10:35:00) [8]

> Jeer ©   (04.03.11 10:19) [46] Сейчас goto не является необходимой, но пользуется

Повторюсь: "Настоящий программист может писать фортрановские программы на любом языке программирования" (С)

Ковыряние в носу тоже не является необходимым.
Но ковыряются ведь.
По той простой причине, что нос есть.
Не было бы носа - не ковырялись бы.

Такая же ситуация и с goto.

P.S. Да простят меня любители ковыряться в носу, если я невольно ущимил их права.


Jeer   (2011-03-04 10:19:00) [9]


> Противный   (04.03.11 09:43) [44]
>
> P.S. Ты бы еще Бейсик вспомнил...


За меня решать не надо, что я хочу.
Что хочу, то и делаю по ситуации, но при этом не даю советы, что это путь к счастью.


> с языка, в котором goto является реально необходимой командой.


Ну ты еще Fortran 66 вспомни.
Сейчас goto не является необходимой, но пользуется.


Anatoly Podgoretsky   (2011-03-04 10:14:00) [10]

> Andy BitOff  (03.03.2011 23:52:33)  [33]

Именно так, при правильной технологии это можно делать быстрее, чем на
указаных языках, но придется много потрудиться над разработкой макросов


Противный   (2011-03-04 09:43:00) [11]

>> Случаи разные бывают, буквально вчера перекидывал с Фортрана на Pascal.

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

"Настоящий программист может писать фортрановские программы на любом языке программирования" (С)

Значок хочешь? Голубой? Или красный? Или нет, лучше... коричневый. Со статусом "Мастер Фортрана".

P.S. Ты бы еще Бейсик вспомнил...


Jeer   (2011-03-04 09:24:00) [12]


> Я все таки goto считаю большим убожеством пограммирования.


Считай, но про себя.

P.S.
Случаи разные бывают, буквально вчера перекидывал с Фортрана на Pascal.
Там штук 50 было goto. Зачем мне алгоритм ломать, который работает, да еще и ошибки свои отлавливать ?
Сделал с goto и ничего, Бог Кару не прислал.


Германн   (2011-03-04 03:08:00) [13]


> Игорь Шевченко ©   (04.03.11 01:08) [41]
>
> Сергей М. ©   (04.03.11 00:26) [40]
>
> СлучАи, они, конечно, завсегда разные бывают :)
>

Это точно!
Но твой взгляд на эти "случАи" меня смущает.
Никак не могу тебя понять. И не только в данном сабже.


Игорь Шевченко   (2011-03-04 01:08:00) [14]

Сергей М. ©   (04.03.11 00:26) [40]

СлучАи, они, конечно, завсегда разные бывают :)


Сергей М.   (2011-03-04 00:26:00) [15]


> Игорь Шевченко ©   (04.03.11 00:07) [38]


> Неужели есть заказчики, которые в ТЗ детали быдлокода оговаривают
> ?


Ага, есть такие)
Надысь расчитался с Заказчиком за один такой образчик.
Портировал ему в Delphi чей-то там BCB-проект, с незначительными функциональными  дополнениями.
Так вот там, в портируемом оригинале, такое было понахреноверчено - волосы дыбом встают)
Я честно спросил Заказчика - ты, мол, как потом все это разгребать-то будешь ? И, мол, зачем его дважды разгребать - мне а потом тебе, если достаточно мне одному один раз помучаться, чтобы тебе потом было спокойно и легко ориентироваться в проекте ? Давай, мол, малясь деньжат еще подкинь - и я приведу этот кошмар в божеский вид)
Заказчик, не отрицая что портируемый проект выглядит безобразно, заявил : бабла, мол, больше не дам, мол, самому мало, если берешься за работу, то делай чего говорят и не рассуждай про высокие материи)


Противный   (2011-03-04 00:13:00) [16]

> Сергей М. ©   (03.03.11 23:53) [35] но мы тут за брейк толкуем вроде бы

Break, Continue, Exit - рулят.
Goto и суррогатные флажки - отстой.

P. S. Гы...

P. P. S. Интересно это обсуждение выглядит с точки зрения программиста C сотоварищи...


Игорь Шевченко   (2011-03-04 00:07:00) [17]


>  Противоречит Торе - да. Но прав, как всегда, заказчик,
> а не Святое писание. Как ТЗ поставит - так и будет.


Да он не только Торе противоречит, но и Корану, Шариату и Тарикату вместе взятым.

Неужели есть заказчики, которые в ТЗ детали быдлокода оговаривают ?


Противный   (2011-03-04 00:03:00) [18]

> Игорь Шевченко ©   (03.03.11 23:52) [34] Убивать надо за такой код. Медленно и с наслаждением.

Ты противоречишь сам себе. Код в [24] и [30] как раз это и делает. Убивает. Exception. На корню. Хотя да, не медленно, и без наслаждения. Но быстро и без эмоциональной окраски. А задачи разными бывают. Некрасиво - да. Противоречит Торе - да. Но прав, как всегда, заказчик, а не Святое писание. Как ТЗ поставит - так и будет. И если такой код задачу выполняет, то и "Отче наш" читать не придется.

P.S. Так что, когда собирешься убивать - воспользуйся кодом из 24. Только Break убери. Тогда будет медленно. То есть, вечно...


Oleg_teacher   (2011-03-03 23:54:00) [19]

Противный   [29] - таки наверное да! Но может и без них и не обойтись. Я все таки goto считаю большим убожеством пограммирования.


Сергей М.   (2011-03-03 23:53:00) [20]


> Да, кстати:
>
> try
> while True do
>    DoSomething;
> except
> end;


Фаберже-то они те же, но мы тут за брейк толкуем вроде бы)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо