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

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

поиск максимальных элементов в массиве [D7]


radiokarazinec ©   (2010-12-26 12:10:00) 

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


KilkennyCat   (2010-12-26 13:26:00) [1]


> можно пример кода, как оно должно выглядеть

конечно можно:
Пример кода : Простой пример, который показывает множество диалогов
// Полный код Модуля.
// -----------------------------------------------------------
// Вы должны поместить этот код в модуль с именем Unit1 и с формой
// названную Form1, которая имеет событие OnCreate названное FormCreate.

unit Unit1;

interface

uses
 Forms, Dialogs, Windows, SysUtils;

type
 TMsgRecord = record
   thread : Integer;
   msg    : string[30];
 end;
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 end;

var
 Form1: TForm1;

Implementation
{$R *.dfm}        // Включение определений формы

ThreadVar         // Мы должны позволить каждому потоку его собственные образцы
                 // переданной переменной записи
 msgPtr : ^TMsgRecord;

// Частная процедура потока для показа строки
function ShowMsg(Parameter : Pointer) : Integer;
begin
 // Установка 0 возвращаемому значению
 Result := 0;

 // Указываем указатель на переданные данные
 // Обратите внимание, что каждый поток имеет отдельную копию msgPtr
 msgPtr := Parameter;

 // Показ этого сообщения
 ShowMessagePos('Thread '+IntToStr(msgPtr.thread)+' '+msgPtr.msg,
                200*msgPtr.thread, 100);

 // Конец потока
 EndThread(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 id1, id2 : LongWord;
 thread1, thread2 : Integer;
 msg1, msg2 : TMsgRecord;

begin
 // установка наших отображаемых сообщений
 msg1.thread := 1;
 msg1.msg    := 'Hello World';
 msg2.thread := 2;
 msg2.msg    := 'Goodbye World';

 // Запуск первого выполнения потока, спрошивающего имя пользователя
 thread1 := BeginThread(nil,
                        0,
                        Addr(ShowMsg),
                        Addr(msg1),
                        0,
                        id1);

 // И также спрашиваем фамилию
 thread2 := BeginThread(nil,
                        0,
                        Addr(ShowMsg),
                        Addr(msg2),
                        0,
                        id2);

 // Гарантируйте, что потоки будут закрыты только когда всё сделано
 ShowMessagePos('Press this when other dialogs finished.', 200, 300);

 // Наконец, убераемся, закрывая потоки
 CloseHandle(thread1);
 CloseHandle(thread2);
end;

end.


Anatoly Podgoretsky   (2010-12-26 13:03:00) [2]


> это я и так знал

Тогда в чем вопрос, если ты и так все знаешь.


Ega23   (2010-12-26 13:00:00) [3]


> это я и так знал


Тебе это может показаться странным, но тут сидят добрые и бескорыстные люди. Которые (зачем-то?) помогают толковым новичкам. Критикуют код, приводят статьи, отсылают к хелпу, рекомендуют книги. Зачем? Ведь тем самым эти добрые и бескорыстные люди создают себе конкурентов на рынке труда.
Надо вот чтобы попросил очередной студент код - и дать ему правильный код. Но такой, чтобы он нифига не понял и преподаватель сразу увидел, что код не его. И двойку, потом в сапоги, а потом - манагером или двор мести.

К чему я всё это? Ах, ну да. Код тебе не дадут. Скорее всего.


radiokarazinec   (2010-12-26 12:53:00) [4]

это я и так знал


sniknik   (2010-12-26 12:24:00) [5]

перебор делается с помощью for, условие с помощью if, выглядеть должно как цикл с условием.


Наверх

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