Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
(*
* uTrList.pas - ¬®¤г«м, ॠ«Ё§гойЁ© в Ў«Ёжг ваЁ ¤
* ver. 0.37
* 21.05.2007 serg
*)
unit uTrList;
interface
const triadTableSize = 200;
type
tUseInfo = record
isUse: Boolean; (* == १г«мв в нв®© ваЁ ¤л 㦥 ¤агЈЁ¬ ваЁ ¤ ¬*)
endUse: Integer; (* == з «® ®Ў« бвЁ ЁбЇ®«м§®ў Ёп нв®© ваЁ ¤л *)
numTmpVar: Integer; (* == ®¬Ґа ўаҐ¬Ґ®© ЇҐаҐ¬Ґ®©, ў Є®в®а®© еа Ёвбп १г«мв в *)
end;
Str20 = String[20];
tTriadData = record
(* Џ®«п, Ї®«гз Ґ¬лҐ ®в ‘Ёв ЄбЁзҐбЄ®Ј® Ђ «Ё§ в®а *)
(* num : Integer; *)
name: Str20;
op1: Str20;
op2: Str20;
(* Џ®«п, г¦лҐ ¤«п ЇҐаҐў®¤ ў ЂбᥬЎ«Ґа *)
useInfo: tUseInfo; (* Ёд ®Ў ЁбЇ®«м§гҐ¬®б⨠१г«мв в ¤ ®© ваЁ ¤л *)
end;
tTriadList = record
top: integer;
data: array[1..triadTableSize] of tTriadData;
end;
procedure copyTriad(var dest: tTriadData; const source: tTriadData);
procedure createTriad(var triada: tTriadData; name, op1, op2: Str20);
procedure createTriadList(var list: tTriadList);
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData; num: Integer);
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
procedure printTriadList(triadFile:string; const list: tTriadList);
var TriadList: tTriadList;
implementation
procedure copyTriad(var dest: tTriadData; const source: tTriadData);
begin
(* num : Integer; *)
dest.name:= source.name ;
dest.op1 := source.op1 ;
dest.op2 := source.op2 ;
dest.useInfo := source.useInfo;
end;
procedure createTriad(var triada: tTriadData;name, op1, op2: Str20);
begin
(* num : Integer; *)
triada.name:= name ;
triada.op1 := op1 ;
triada.op2 := op2 ;
triada.useInfo.isUse := false;
triada.useInfo.endUse := 0;
triada.useInfo.numTmpVar :=0;
end;
procedure createTriadList(var list: tTriadList);
begin
list.top := 0;
end;
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData;
num: Integer);
begin
if num > list.top then list.top := num;
copyTriad(list.data[num], triada);
end;
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
begin
inc(list.top);
copyTriad(list.data[list.top], triada);
end;
procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
begin
copyTriad(triada, list.data[num]);
end;
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
begin
copyTriad(list.data[num],triada);
end;
procedure printTriadList(triadFile:string; const list: tTriadList);
var f: Text;
i: integer;
begin
assign(f, triadFile);
rewrite(f);
writeln(f, 'num':10, 'name': 10, 'op1': 10, 'op2': 10,
'isUse':10, 'endUse':10, 'numTmpVar':10);
with list do
for i:=1 to top do
with data[i] do
writeln(f, i:10, name: 10, op1: 10, op2: 10,
useInfo.isUse:10, useInfo.endUse:10, useInfo.numTmpVar:10);
close(f);
end;
end.
* uTrList.pas - ¬®¤г«м, ॠ«Ё§гойЁ© в Ў«Ёжг ваЁ ¤
* ver. 0.37
* 21.05.2007 serg
*)
unit uTrList;
interface
const triadTableSize = 200;
type
tUseInfo = record
isUse: Boolean; (* == १г«мв в нв®© ваЁ ¤л 㦥 ¤агЈЁ¬ ваЁ ¤ ¬*)
endUse: Integer; (* == з «® ®Ў« бвЁ ЁбЇ®«м§®ў Ёп нв®© ваЁ ¤л *)
numTmpVar: Integer; (* == ®¬Ґа ўаҐ¬Ґ®© ЇҐаҐ¬Ґ®©, ў Є®в®а®© еа Ёвбп १г«мв в *)
end;
Str20 = String[20];
tTriadData = record
(* Џ®«п, Ї®«гз Ґ¬лҐ ®в ‘Ёв ЄбЁзҐбЄ®Ј® Ђ «Ё§ в®а *)
(* num : Integer; *)
name: Str20;
op1: Str20;
op2: Str20;
(* Џ®«п, г¦лҐ ¤«п ЇҐаҐў®¤ ў ЂбᥬЎ«Ґа *)
useInfo: tUseInfo; (* Ёд ®Ў ЁбЇ®«м§гҐ¬®б⨠१г«мв в ¤ ®© ваЁ ¤л *)
end;
tTriadList = record
top: integer;
data: array[1..triadTableSize] of tTriadData;
end;
procedure copyTriad(var dest: tTriadData; const source: tTriadData);
procedure createTriad(var triada: tTriadData; name, op1, op2: Str20);
procedure createTriadList(var list: tTriadList);
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData; num: Integer);
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
procedure printTriadList(triadFile:string; const list: tTriadList);
var TriadList: tTriadList;
implementation
procedure copyTriad(var dest: tTriadData; const source: tTriadData);
begin
(* num : Integer; *)
dest.name:= source.name ;
dest.op1 := source.op1 ;
dest.op2 := source.op2 ;
dest.useInfo := source.useInfo;
end;
procedure createTriad(var triada: tTriadData;name, op1, op2: Str20);
begin
(* num : Integer; *)
triada.name:= name ;
triada.op1 := op1 ;
triada.op2 := op2 ;
triada.useInfo.isUse := false;
triada.useInfo.endUse := 0;
triada.useInfo.numTmpVar :=0;
end;
procedure createTriadList(var list: tTriadList);
begin
list.top := 0;
end;
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData;
num: Integer);
begin
if num > list.top then list.top := num;
copyTriad(list.data[num], triada);
end;
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
begin
inc(list.top);
copyTriad(list.data[list.top], triada);
end;
procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
begin
copyTriad(triada, list.data[num]);
end;
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
begin
copyTriad(list.data[num],triada);
end;
procedure printTriadList(triadFile:string; const list: tTriadList);
var f: Text;
i: integer;
begin
assign(f, triadFile);
rewrite(f);
writeln(f, 'num':10, 'name': 10, 'op1': 10, 'op2': 10,
'isUse':10, 'endUse':10, 'numTmpVar':10);
with list do
for i:=1 to top do
with data[i] do
writeln(f, i:10, name: 10, op1: 10, op2: 10,
useInfo.isUse:10, useInfo.endUse:10, useInfo.numTmpVar:10);
close(f);
end;
end.