Добавил:
Kurume
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ОНИ / Гуменюк А.С / Цифровое моделирование систем передачи данных / GAS / GAS / (4)OPTIM / optimal
.PAS uses Gnk,Gnk2,Fkt,crt;
const
L=4; {¤«Ё Ў«®Є Ё«Ё L-Ја ¬¬л}
Reg='B'; {Є«оз ¤«п Їа®жҐ¤га FBL,VIEW,KVT,DCF,SEG Ё STAT,
ЇаЁЁ¬ Ґв 2 § 票п:
'B'-Є®¤Ёа®ў ЁҐ Ё ¤ҐЄ®¤Ёа®ў ЁҐ Ў«®Є®ў;
'L'-Є®¤Ёа®ў ЁҐ Ё ¤ҐЄ®¤Ёа®ў ЁҐ L-Ја ¬¬;}
TF='T'; {Є«оз ¤«п Їа®жҐ¤га FPC,VIEW -
ЇаЁЁ¬ Ґв 2 § 票п:
'T' - ®Ўа Ў®вЄ ⥪бв®ў®© Ёд®а¬ жЁЁ;
'F' - ®Ўа Ў®вЄ га®ўҐ© Єў в®ў Ёп;}
KBL=200; {¤«Ё Ёбб«Ґ¤гҐ¬®© ўлЎ®аЄЁ б®®ЎйҐЁ©}
LEN=10; { ¬ ЄбЁ¬ «м®Ґ зЁб«® а §а冷ў нд䥪⨢®Ј® Є®¤ }
INF=10; { а §а冷ў ¤ў®Ёз®Ј® Ї®§ЁжЁ®®Ј® Є®¤ }
var
FF:text;
{д ©«®ў п ЇҐаҐ¬Ґ п ¤«п бўп§Ё б ⥪бв®ўл¬ д ©«®¬,
®ЇаҐ¤Ґ«пҐ¬®Ј® Ї®«м§®ў ⥫Ґ¬}
WT:array[1..KBL,1..L] of word; {¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,L),
ᮤҐа¦ йЁ© ўбҐ б®®ЎйҐЁп,Ў«®ЄЁ Ё«Ё
L-Ја ¬¬л;}
WP:array[1..KBL] of word;
{®¤®¬Ґал© ¬ ббЁў ¤«Ё®© KBL,
ᮤҐа¦ йЁ© ®¬Ґа б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ;}
PC:array[1..KBL,1..2] of word;
{¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,2),ᮤҐа¦ йЁ©
ў 1-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬,
ў 2-¬ бв®«ЎжҐ - Ёе зЁб« Ї®пў«ҐЁп;}
DIF:word; {Є®«ЁзҐбвў® а §«Ёзле б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ў Ёбб«Ґ¤гҐ¬®©
ўлЎ®аЄҐ;}
TREE:array[1..KBL,1..3] of word;
{¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,3),
ЇаҐ¤бв ў«пойЁ© "¤ҐаҐў®" ў ¬Ґв®¤Ґ • д䬥 , Ё ᮤҐа¦ йЁ© :
ў 1-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©,
Ў«®Є®ў Ё«Ё L-Ја ¬¬, Ё¬ҐойЁе Ў®«м襥 зЁб«® Ї®пў«ҐЁ©;
ў 2-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©,
Ў«®Є®ў Ё«Ё L-Ја ¬¬, Ё¬ҐойЁе ¬Ґм襥 зЁб«® Ї®пў«ҐЁ©;
ў 3-¬ бв®«ЎжҐ ®¬Ґа ўбЇ®¬®Ј ⥫мле "б®®ЎйҐЁ©",
Ї®«гз ойЁебп ў १г«мв ⥠б㬬Ёа®ў Ёп зЁбҐ« Ї®пў«ҐЁп.}
KOD:array[1..KBL,1..LEN] of word;
{ ¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,LEN),
ᮤҐа¦ йЁ© Є®¤®ўлҐ б«®ў нд䥪⨢®Ј® Є®¤ }
BIN:array[1..KBL,1..INF] of word;
{ ¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,INF),
ᮤҐа¦ йЁ© Є®¤®ўлҐ б«®ў ¤ў®Ёз®Ј® Ї®§ЁжЁ®®Ј® Є®¤ ;}
i:word;
LKOD:string; {- нд䥪⨢®Ґ Є®¤®ў®Ґ б«®ў® }
FK,FT: TEXT;
begin
Clrscr;
Assign(FF, 'Text.txt');
FileMode := 0; { Set file access to read only }
Reset(FF);
FBL(FF,REG,L,KBL,WT);
{ Џа®жҐ¤га FBL § Јаг¦ Ґв Ёд®а¬ жЁо б ⥪бв®ў®Ј® д ©« ,
®ЇаҐ¤Ґ«пҐ¬®Ј® Ї®«м§®ў ⥫Ґ¬, ў ®Ўа Ў влў Ґ¬л© ¬ ббЁў }
FPC(TF,KBL,L,WT,WP,PC,DIF);
{ Џа®жҐ¤га FPC ўл¤Ґ«пҐв д®а¬ЁагҐ¬лҐ Ёбв®зЁЄ®¬ а §«ЁзлҐ б®®ЎйҐЁп( «д ўЁв),
®ЇаҐ¤Ґ«пҐв Ёе Є®«ЁзҐбвў® Ё зЁб« Ї®пў«ҐЁ© ў ⥪бвҐ,
д®а¬ЁагҐв в Ў«Ёжг ᮮ⢥вбвўЁп ¬Ґ¦¤г а §«Ёзл¬Ё б®®ЎйҐЁп¬Ё
Ё зЁб« ¬Ё Ёе Ї®пў«ҐЁп, в Є¦Ґ гЇ®а冷稢 Ґв нвг в Ў«Ёжг
ў Ї®ап¤ЄҐ гЎлў Ёп зЁбҐ« Ї®пў«ҐЁп.}
FTAB(DIF,PC,TREE);
{ Џа®жҐ¤га FTAB ᮧ¤ Ґв бЇҐжЁ «мго в Ў«Ёжг TREE,
ЇаҐ¤бв ў«пойго "¤ҐаҐў®" ў ¬Ґв®¤Ґ • д䬥 }
FPC(TF,KBL,L,WT,WP,PC,DIF);
FKOD(KBL,DIF,LEN,PC,TREE,KOD);
{ Їа®жҐ¤га FKOD бва®Ёв нддҐЄвЁўл© Є®¤.}
{FPC(TF,KBL,L,WT,WP,PC,DIF);}
FBIN(KBL,DIF,INF,PC,BIN);
{ Є®¤ЁагҐв б®®ЎйҐЁп, Ї®бл« Ґ¬лҐ Ёбв®зЁЄ®¬, Їа®бвл¬ ¤ў®Ёзл¬ Є®¤®¬.}
VIEW(TF,REG,KBL,DIF,L,LEN,INF,WT,WP,PC,KOD,BIN);
{ ўл¤ Ґв нЄа ўбҐ а §«ЁзлҐ б®®ЎйҐЁп,
ᮮ⢥вбвўгойЁҐ Ё¬ з бв®вл Ї®пў«ҐЁп Ё Є®¤®ўлҐ б«®ў .}
for i:=1 to KBL do
begin
TVK(DIF,LEN,PC,KOD,WP[i],LKOD);{ Ё¬ЁвЁаго饩 Є®¤Ґа}
DCT(REG,DIF,L,LEN,KBL,I,LKOD,WT,KOD,WP,PC);
{Ё¬ЁвЁаго饩 ¤ҐЄ®¤Ґа Ё ЎгдҐа ¤«п Є®Ї«ҐЁп ЇаЁЁ¬ Ґ¬ле Є®¤®ўле б«®ў }
end;
BTK(KBL,DIF,L,INF,WP,PC,BIN);
{Љ®¤Ёа®ў ЁҐ б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ¤ў®Ёзл¬ Ї®§ЁжЁ®л¬ Є®¤®¬.
(€¬Ёв жЁп дгЄжЁЁ ¤ў®Ёз®Ј® Є®¤Ґа ).
‘®§¤ Ґвбп д ©« BIN_OUT.PAS, ᮤҐа¦ йЁ© ⥪бв,
§ Є®¤Ёа®ў л© ¤ў®Ёзл¬ Ї®§ЁжЁ®л¬ Є®¤®¬ ЎҐ§ Їа®ЎҐ«®ў}
STAT(KBL,L,LEN,REG,KOD,PC,WP);
{ ўлзЁб«пҐв бв вЁбвЁзҐбЄЁҐ Ї®Є § ⥫Ё нд䥪⨢®бвЁ Є®¤ }
WriteLn('‚®в Ё ўбс ॡпв !');
Readkey;
Close(FF);
end.
const
L=4; {¤«Ё Ў«®Є Ё«Ё L-Ја ¬¬л}
Reg='B'; {Є«оз ¤«п Їа®жҐ¤га FBL,VIEW,KVT,DCF,SEG Ё STAT,
ЇаЁЁ¬ Ґв 2 § 票п:
'B'-Є®¤Ёа®ў ЁҐ Ё ¤ҐЄ®¤Ёа®ў ЁҐ Ў«®Є®ў;
'L'-Є®¤Ёа®ў ЁҐ Ё ¤ҐЄ®¤Ёа®ў ЁҐ L-Ја ¬¬;}
TF='T'; {Є«оз ¤«п Їа®жҐ¤га FPC,VIEW -
ЇаЁЁ¬ Ґв 2 § 票п:
'T' - ®Ўа Ў®вЄ ⥪бв®ў®© Ёд®а¬ жЁЁ;
'F' - ®Ўа Ў®вЄ га®ўҐ© Єў в®ў Ёп;}
KBL=200; {¤«Ё Ёбб«Ґ¤гҐ¬®© ўлЎ®аЄЁ б®®ЎйҐЁ©}
LEN=10; { ¬ ЄбЁ¬ «м®Ґ зЁб«® а §а冷ў нд䥪⨢®Ј® Є®¤ }
INF=10; { а §а冷ў ¤ў®Ёз®Ј® Ї®§ЁжЁ®®Ј® Є®¤ }
var
FF:text;
{д ©«®ў п ЇҐаҐ¬Ґ п ¤«п бўп§Ё б ⥪бв®ўл¬ д ©«®¬,
®ЇаҐ¤Ґ«пҐ¬®Ј® Ї®«м§®ў ⥫Ґ¬}
WT:array[1..KBL,1..L] of word; {¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,L),
ᮤҐа¦ йЁ© ўбҐ б®®ЎйҐЁп,Ў«®ЄЁ Ё«Ё
L-Ја ¬¬л;}
WP:array[1..KBL] of word;
{®¤®¬Ґал© ¬ ббЁў ¤«Ё®© KBL,
ᮤҐа¦ йЁ© ®¬Ґа б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ;}
PC:array[1..KBL,1..2] of word;
{¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,2),ᮤҐа¦ йЁ©
ў 1-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬,
ў 2-¬ бв®«ЎжҐ - Ёе зЁб« Ї®пў«ҐЁп;}
DIF:word; {Є®«ЁзҐбвў® а §«Ёзле б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ў Ёбб«Ґ¤гҐ¬®©
ўлЎ®аЄҐ;}
TREE:array[1..KBL,1..3] of word;
{¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,3),
ЇаҐ¤бв ў«пойЁ© "¤ҐаҐў®" ў ¬Ґв®¤Ґ • д䬥 , Ё ᮤҐа¦ йЁ© :
ў 1-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©,
Ў«®Є®ў Ё«Ё L-Ја ¬¬, Ё¬ҐойЁе Ў®«м襥 зЁб«® Ї®пў«ҐЁ©;
ў 2-¬ бв®«ЎжҐ ®¬Ґа б®®ЎйҐЁ©,
Ў«®Є®ў Ё«Ё L-Ја ¬¬, Ё¬ҐойЁе ¬Ґм襥 зЁб«® Ї®пў«ҐЁ©;
ў 3-¬ бв®«ЎжҐ ®¬Ґа ўбЇ®¬®Ј ⥫мле "б®®ЎйҐЁ©",
Ї®«гз ойЁебп ў १г«мв ⥠б㬬Ёа®ў Ёп зЁбҐ« Ї®пў«ҐЁп.}
KOD:array[1..KBL,1..LEN] of word;
{ ¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,LEN),
ᮤҐа¦ йЁ© Є®¤®ўлҐ б«®ў нд䥪⨢®Ј® Є®¤ }
BIN:array[1..KBL,1..INF] of word;
{ ¤ўг¬Ґал© ¬ ббЁў а §¬Ґа®¬ (KBL,INF),
ᮤҐа¦ йЁ© Є®¤®ўлҐ б«®ў ¤ў®Ёз®Ј® Ї®§ЁжЁ®®Ј® Є®¤ ;}
i:word;
LKOD:string; {- нд䥪⨢®Ґ Є®¤®ў®Ґ б«®ў® }
FK,FT: TEXT;
begin
Clrscr;
Assign(FF, 'Text.txt');
FileMode := 0; { Set file access to read only }
Reset(FF);
FBL(FF,REG,L,KBL,WT);
{ Џа®жҐ¤га FBL § Јаг¦ Ґв Ёд®а¬ жЁо б ⥪бв®ў®Ј® д ©« ,
®ЇаҐ¤Ґ«пҐ¬®Ј® Ї®«м§®ў ⥫Ґ¬, ў ®Ўа Ў влў Ґ¬л© ¬ ббЁў }
FPC(TF,KBL,L,WT,WP,PC,DIF);
{ Џа®жҐ¤га FPC ўл¤Ґ«пҐв д®а¬ЁагҐ¬лҐ Ёбв®зЁЄ®¬ а §«ЁзлҐ б®®ЎйҐЁп( «д ўЁв),
®ЇаҐ¤Ґ«пҐв Ёе Є®«ЁзҐбвў® Ё зЁб« Ї®пў«ҐЁ© ў ⥪бвҐ,
д®а¬ЁагҐв в Ў«Ёжг ᮮ⢥вбвўЁп ¬Ґ¦¤г а §«Ёзл¬Ё б®®ЎйҐЁп¬Ё
Ё зЁб« ¬Ё Ёе Ї®пў«ҐЁп, в Є¦Ґ гЇ®а冷稢 Ґв нвг в Ў«Ёжг
ў Ї®ап¤ЄҐ гЎлў Ёп зЁбҐ« Ї®пў«ҐЁп.}
FTAB(DIF,PC,TREE);
{ Џа®жҐ¤га FTAB ᮧ¤ Ґв бЇҐжЁ «мго в Ў«Ёжг TREE,
ЇаҐ¤бв ў«пойго "¤ҐаҐў®" ў ¬Ґв®¤Ґ • д䬥 }
FPC(TF,KBL,L,WT,WP,PC,DIF);
FKOD(KBL,DIF,LEN,PC,TREE,KOD);
{ Їа®жҐ¤га FKOD бва®Ёв нддҐЄвЁўл© Є®¤.}
{FPC(TF,KBL,L,WT,WP,PC,DIF);}
FBIN(KBL,DIF,INF,PC,BIN);
{ Є®¤ЁагҐв б®®ЎйҐЁп, Ї®бл« Ґ¬лҐ Ёбв®зЁЄ®¬, Їа®бвл¬ ¤ў®Ёзл¬ Є®¤®¬.}
VIEW(TF,REG,KBL,DIF,L,LEN,INF,WT,WP,PC,KOD,BIN);
{ ўл¤ Ґв нЄа ўбҐ а §«ЁзлҐ б®®ЎйҐЁп,
ᮮ⢥вбвўгойЁҐ Ё¬ з бв®вл Ї®пў«ҐЁп Ё Є®¤®ўлҐ б«®ў .}
for i:=1 to KBL do
begin
TVK(DIF,LEN,PC,KOD,WP[i],LKOD);{ Ё¬ЁвЁаго饩 Є®¤Ґа}
DCT(REG,DIF,L,LEN,KBL,I,LKOD,WT,KOD,WP,PC);
{Ё¬ЁвЁаго饩 ¤ҐЄ®¤Ґа Ё ЎгдҐа ¤«п Є®Ї«ҐЁп ЇаЁЁ¬ Ґ¬ле Є®¤®ўле б«®ў }
end;
BTK(KBL,DIF,L,INF,WP,PC,BIN);
{Љ®¤Ёа®ў ЁҐ б®®ЎйҐЁ©, Ў«®Є®ў Ё«Ё L-Ја ¬¬ ¤ў®Ёзл¬ Ї®§ЁжЁ®л¬ Є®¤®¬.
(€¬Ёв жЁп дгЄжЁЁ ¤ў®Ёз®Ј® Є®¤Ґа ).
‘®§¤ Ґвбп д ©« BIN_OUT.PAS, ᮤҐа¦ йЁ© ⥪бв,
§ Є®¤Ёа®ў л© ¤ў®Ёзл¬ Ї®§ЁжЁ®л¬ Є®¤®¬ ЎҐ§ Їа®ЎҐ«®ў}
STAT(KBL,L,LEN,REG,KOD,PC,WP);
{ ўлзЁб«пҐв бв вЁбвЁзҐбЄЁҐ Ї®Є § ⥫Ё нд䥪⨢®бвЁ Є®¤ }
WriteLn('‚®в Ё ўбс ॡпв !');
Readkey;
Close(FF);
end.
Соседние файлы в папке (4)OPTIM