![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Гость_Олег |
|
|||
|
Unregistered |
Здравствуйте, уважаемые единомышленники!
Вопрос «чайника»: уже долгое время не могу написать такую простенькую прогу, условие которой: В таблицу заносятся сведения о сотрудниках организации по формату: фамилия, имя, отчество, заработная плата. Разработать прогу для сортировки сведений о сотрудниках по заработной плате – в первой строке должен стоять сотрудник с самой высокой з/п. Задачу нужно решить с использованием типа данных Запись и через динамический массив. Вот код, в котором никак не могу найти ошибку: {$R *.dfm} type TEmploy = record Familie : string; Name : string; Otchestvo : string; Zp :real; end; TEmployArr = array of TEmploy; //... var Re: TEmployArr; procedure TForm1.N1Click(Sender: TObject); var X,Y,K,I:Integer; begin for i:=1 to Tab1.RowCount do if Length(Tab1.Cells[0,i])<>0 then k:=k+1; X:=Tab1.FixedCols;// нам не нужны те колонки, которые фиксированы SetLength(Re,K); For Y:=Tab1.FixedRows to K do{ Нам не нужны фиксированые строки} Begin Re[Y-Tab1.FixedRows].Familie:=tab1.Cells[X+0,Y]; Re[Y-Tab1.FixedRows].Name:=Tab1.Cells[X+1,Y]; Re[Y-Tab1.FixedRows].Otchestvo :=Tab1.Cells[X+2,Y]; Re[Y-Tab1.FixedRows].Zp :=StrToFloat(Tab1.Cells[X+3,Y]); end; end; procedure TForm1.N2Click(Sender: TObject); var i,K,m,r:integer; b:TEmploy; begin for i:=1 to Tab1.RowCount do if Length(Tab1.Cells[0,i])<>0 then k:=k+1; for r:=0 to k-1 do begin m:=r; for i:=r to k-1 do begin if Tab1.Cells[3,i]>Tab1.Cells[3,m] then begin m:=i; if r<>m Then begin b:=Re[r]; Re[r]:=Re[m]; Re[m]:=b; end; end; end; end; for i:=0 to K-1 do begin Tab2.Cells[0,i+1]:=Re[i].Familie; Tab2.Cells[1,i+1]:= Re[i].Name; Tab2.Cells[2,i+1]:=Re[i].Otchestvo; Tab2.Cells[3,i+1]:=FloatToStr(Re[i].Zp); end; end; end. Может кто подскажет, где собака зарыта??? |
|||
|
||||
| z-END |
|
||||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
а где ошибка-то возникает?
по моему вот этот кусок нерабочий т.к. при RowCount=1 последняя ячейка будет являться не первой а нулевой cell[0,0], т.е. логично бы написать цикл так:
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |