![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск максимальных элементов в массиве [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, выглядеть должно как цикл с условием.