Главная:
Рефераты
Главная
Финансы деньги и налоги
Философия
Физика и энергетика
Управление
Схемотехника
Стратегический менеджмент
Статистика
Соцобеспечение
Семейное право
Программирование компьютеры и кибернетика
Охрана окружающей среды экология
Основы права
Медицина
Криминалистика и криминология
Коммуникации и связь
Кибернетика
Качество упр-е качеством
КСЕ
Информатика ВТ телекоммуникации
Журналистика
Государство и право
Биографии
Банковское дело
Карта сайта
Рефераты. Информационная система расчетов по договорам
end;
// ********** глобальная переменная
var
kp:TKp;
i, Row, CP: Integer;
SList: TStringList;
n: integer; // длина (кол-во элементов) списка
st: string; // строковое представление списка
Fil: string;
FirstStr: string;
// ********** раздел описаний
implementation
type
TPSpisXD=^TSpisXD;
TSpisXD = record
numb:string[20]; // номер
datzak:string[20]; // дата заключения
datzav:string[20]; // дата завершения
temadog:string[40]; // тема
namorg:string[20]; // наименование организации
priznak:string[15]; // признак
stoimost:string[10]; // стоимость в тыс руб.
next: TPSpisXD; // следующий элемент списка
end;
type
TPSpisWTK=^TSpisWTK;
TSpisWTK=record
fam:string[20]; // фамилия
name:string[20]; // имя
otc:string[20]; // отчество
god:string[40]; // дата рождения
kod:string[20]; // код договора
prznak:string[15]; // признак
zarplat:string[20]; // зарплата
adres:string[20]; // адрес
banknum:string[20]; // номер банка
rasschet:string[40]; // Р/С
next: TPSpisWTK;
end;
type
TPSpisBAN=^TSpisBAN;
TSpisBAN=record
numotd:string[20]; // фамилия
gorod:string[20]; // имя
adress:string[20]; // отчество
naim:string[40]; // дата рождения
kod:string[20]; // код отделения
next: TPSpisBAN;
end;
var
head1: TPSpisXD; // начало (голова) списка XD
head2: TPSpisWTK; // голова списка WTK
head3: TPSpisBAN; // голова списка BAN
// ===================
procedure TKp.null;
// Обнуление начала списка
begin
head1:=NIL;
head2:=NIL;
head3:=NIL;
end;
// ===================
procedure TKp. MoySort1 (AStringGrid:TStringGrid);
// Сортировка по первой колонке
var
node: TPSpisXD; // новый узел списка
curr: TPSpisXD; // текущий узел списка
pre: TPSpisXD; // предыдущий, относительно curr, узел
i:integer; // counter
begin
Kp.null;
i:=1;
//repeat
while (i<11) do
begin
new(node);
node^.numb:=AStringGrid. Cells [1, i];
node^.datzak:=AStringGrid. Cells [2, i];
node^.datzav:=AStringGrid. Cells [3, i];
node^.temadog:=AStringGrid. Cells [4, i];
node^.namorg:=AStringGrid. Cells [5, i];
node^.priznak:=AStringGrid. Cells [6, i];
node^.stoimost:=AStringGrid. Cells [7, i];
// подходящее место для узла
curr:=head1;
pre:=NIL;
while (curr <> NIL) and (node.numb > curr^.numb) do
begin
// введенное значение больше текущего
pre:= curr;
curr:=curr^.next; // к следующему узлу
end;
if pre = NIL
then
begin
// новый узел в начало списка
node^.next:=head1;
head1:=node;
end
else
begin
// новый узел после pre, перед curr
node^.next:=pre^.next;
pre^.next:=node;
end;
i:=i+1;
end;
Kp.XDShow;
end;
// ===================
procedure TKp. MoySort2 (AStringGrid:TStringGrid);
// Сортировка по второй колонке
var
node: TPSpisXD; // новый узел списка
curr: TPSpisXD; // текущий узел списка
pre: TPSpisXD; // предыдущий, относительно curr, узел
i:integer; // counter
begin
Kp.null;
i:=1;
//repeat
while (i<11) do
begin
new(node);
node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];
node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];
node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];
node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];
node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];
node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];
node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];
curr:=head1;
pre:=NIL;
while (curr <> NIL) and (node.datzak > curr^.datzak) do
begin
// введенное значение больше текущего
pre:= curr;
curr:=curr^.next; // к следующему узлу
end;
if pre = NIL
then
begin
// новый узел в начало списка
node^.next:=head1;
head1:=node;
end
else
begin
// новый узел после pre, перед curr
node^.next:=pre^.next;
pre^.next:=node;
end;
i:=i+1;
end;
Kp.XDShow;
end;
// ===================
procedure TKp. MoySort5 (AStringGrid:TStringGrid);
// Сортировка по пятой
var
node: TPSpisXD; // новый узел списка
curr: TPSpisXD; // текущий узел списка
pre: TPSpisXD; // предыдущий, относительно curr, узел
i:integer; // counter
// n:integer; // длина (кол-во элементов) списка
// st:string; // строковое представление списка
begin
Kp.null;
i:=1;
//repeat
while (i<11) do
begin
new(node);
node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];
node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];
node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];
node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];
node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];
node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];
node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];
// подходящее место для узла
curr:=head1;
pre:=NIL;
while (curr <> NIL) and (node.namorg > curr^.namorg) do
begin
// введенное значение больше текущего
pre:= curr;
curr:=curr^.next; // к следующему узлу
end;
if pre = NIL
then
begin
// новый узел в начало списка
node^.next:=head1;
head1:=node;
end
else
begin
// новый узел после pre, перед curr
node^.next:=pre^.next;
pre^.next:=node;
end;
i:=i+1;
//until (i<11);
end;
Kp.XDShow;
end;
// ===================
procedure TKp. MoySort7 (AStringGrid:TStringGrid);
// Сортировка по 7
var
node: TPSpisXD; // новый узел списка
curr: TPSpisXD; // текущий узел списка
pre: TPSpisXD; // предыдущий, относительно curr, узел
i:integer; // counter
// n:integer; // длина (кол-во элементов) списка
// st:string; // строковое представление списка
begin
Kp.null;
i:=1;
//repeat
while (i<11) do
begin
new(node);
node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];
node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];
node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];
node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];
node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];
node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];
node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];
// подходящее место для узла
curr:=head1;
pre:=NIL;
while (curr <> NIL) and (node.stoimost > curr^.stoimost) do
begin
// введенное значение больше текущего
pre:= curr;
curr:=curr^.next; // к следующему узлу
end;
if pre = NIL
then
begin
// новый узел в начало списка
node^.next:=head1;
head1:=node;
end
else
begin
// новый узел после pre, перед curr
node^.next:=pre^.next;
pre^.next:=node;
end;
i:=i+1;
//until (i<11);
end;
Kp.XDShow;
end;
// ===================
procedure TKp.WTKShow;
var
end
else if Form4. RadioButton4. Checked Then
begin
Kp. MoySort7 (Form1. StringGrid1);
end;
Kp. Free;
end;
procedure TForm4. Button2Click (Sender: TObject);
begin
Form4. Close;
end;
end.
Страницы:
1
,
2
,
3
, 4
Апрель (48)
Март (20)
Февраль (988)
Январь (720)
Январь (21)
2012 © Все права защищены
При использовании материалов активная
ссылка на источник
обязательна.