type person = record
fio: string[64];
zarplata: integer;
end;
var
kartoteka: array [1..3] of person;
сохранение связей между соотв. компонентами массивов после сортировки
у меня есть два связанных компонента. Скажем, работник и зарплата.. . Связаны они у меня порядковыми номерами массивов. Ну, скажем, r[1]-фио работника, z[1]-его зарплата. Но возник вопрос сортировки зарплаты по убывающей. Сортировку я сделать могу, но не ясно как сохранить связь отсортированной по убывающей зарплаты с соответствующим работником.. .
ndx: array [1..N] of Integer;
инициализировать
for i:= 1 to N do ndx := i;
и при сортировке переставлять элементы массива.
напр.
a[1] = 'alfa'
a[2] = 'beta'
a[3] = 'gamma'
r[1] = 80
r[2] = 20
r[3] = 60
ndx[1] = 1
ndx[2] = 2
ndx[3] = 3
после сортировки
r[1] = 20
r[2] = 60
r[3] = 80
ndx[1] = 2
ndx[2] = 3
ndx[3] = 1
т.е. для r[1] соответствует 2я запись в a, итд.
Или же
Код:
изменено название темы
________
_north_
большое спасибо, что б я без тебя делал. Твой пост я видел. В первом случае я не понял, каким образом ты рассчитываешь привязать третий числовой массив, к другому числовому.
а второй ответ действительно навел на мысль сделать это через record. Сейчас еще в литературе пороюсь.. .
_________
Уважаемая ольга кр..). Пожалуйста, дайте людям пожить отпущенный им не слишком длинный срок слегка поспокойней..). Особенно вставляет оставленная вами короткая заметка, что тема вновь будет открыта, как только будет изменено её название..). Непонятно только, кто должен изменить название темки. Вы не изменили, а для всех остальных доступ закрыт.. . Теперь я понимаю, почему вы не программируете на делфи.. . Какой же софт выдержит такие алгоритмы?..).
ну хоть за это спасибо..).
Цитата:
Уважаемая ольга кр..). Пожалуйста, дайте людям пожить отпущенный им не слишком длинный срок слегка поспокойней..).
перестань хамить, немного прислушивайся к просьбам модераторов и все будет ОК
если я не права, всегда есть возможность отписать мне в приват и в
вежливой форме высказать мои ошибки, которые я всегда готова исправить
Цитата:
Особенно вставляет оставленная вами короткая заметка, что тема вновь будет открыта, как только будет изменено её название..). [COLOR=red]Непонятно только[/COLOR], кто должен изменить название темки. Вы не изменили, а для всех остальных доступ закрыт.. . Теперь я понимаю, почему вы не программируете на делфи.. . Какой же софт выдержит такие алгоритмы?..).
не моя вина что ты такой недогадливый :)
приват еще никто не отменял, я тоже вроде не обязана все
разжевывать и в рот ложить, здесь форум для взрослых людей +
программистов ...
Код:
procedure TForm1.Button2Click(Sender: TObject);
type person = record
fio: string[64];
zarplata: integer;
end;
var
kartoteka: array [1..5] of person;
i, j : integer;
t: person;
begin
kartoteka[1].fio := 'alfa';
kartoteka[2].fio := 'beta';
kartoteka[3].fio := 'gamma';
kartoteka[4].fio := 'omega';
kartoteka[5].fio := 'pi';
kartoteka[1].zarplata := 80;
kartoteka[2].zarplata := 20;
kartoteka[3].zarplata := 60;
kartoteka[4].zarplata := 90;
kartoteka[5].zarplata := 10;
for i :=1 to 4 do
for j:=5 downto i+1 do
if kartoteka.zarplata>kartoteka[j].zarplata then begin
t:=kartoteka;
kartoteka:=kartoteka[j];
kartoteka[j]:=t;
end;
for i:=1 to 5 do ShowMessage(kartoteka.fio + ' ' + IntToStr(kartoteka.zarplata));
end;
type person = record
fio: string[64];
zarplata: integer;
end;
var
kartoteka: array [1..5] of person;
i, j : integer;
t: person;
begin
kartoteka[1].fio := 'alfa';
kartoteka[2].fio := 'beta';
kartoteka[3].fio := 'gamma';
kartoteka[4].fio := 'omega';
kartoteka[5].fio := 'pi';
kartoteka[1].zarplata := 80;
kartoteka[2].zarplata := 20;
kartoteka[3].zarplata := 60;
kartoteka[4].zarplata := 90;
kartoteka[5].zarplata := 10;
for i :=1 to 4 do
for j:=5 downto i+1 do
if kartoteka.zarplata>kartoteka[j].zarplata then begin
t:=kartoteka;
kartoteka:=kartoteka[j];
kartoteka[j]:=t;
end;
for i:=1 to 5 do ShowMessage(kartoteka.fio + ' ' + IntToStr(kartoteka.zarplata));
end;
спасибо.. . Особенно, что расписал так.. .