Добавил:
Oksana
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
program KP;
uses CRT;
var
n:integer; {ђ §¬Ґа ¬ ЄбЁ¬ «м®© бва®ЄЁ}
d:integer; {Љ®«-ў® Їа®ЎҐ«®ў ў бва®ЄҐ}
z:integer; {Љ®«-ў® Їгбвле бЁ¬ў®«®ў ў Є®жҐ бва®ЄЁ Ґ¤®бв ойЁе ¤® max бва®ЄЁ}
all:integer; {ЋЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў z+d}
m:integer; {Љ®«-ў® бЁ¬ў®«®ў ў бва®ЄҐ}
c:integer; {Є®«-ў® а §алў®ў ў бва®ЄҐ}
need:integer; {ЌҐ®Ўе®¤Ё¬®Ґ, б।ҐҐ, Є®«-ў® Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥}
y:integer; {ђ §Ёж ў ¤«ЁҐ ®вд®а¬ вЁа®ў ®© бва®ЄЁ ®в ¬ ЄбЁ¬ «м®© ЇҐаҐ¤ ўла ўЁў ЁҐ¬}
i,j:integer; {б«г¦ҐЎлҐ ЇҐаҐ¬ҐлҐ ¤«п жЁЄ«®ў}
fin,fou: text;{ЇҐаҐ¬ҐлҐ ЁЁжЁ «Ё§ жЁЁ ўе®¤®Ј® Ё ўл室®Ј® д ©« }
k:word; {Љ®«-ў® ЎгЄў ў Ё¬ҐЁ д ©« }
b:boolean; {”« Ј «ЁзЁп Їа®ЎҐ« ў ЇаҐ¤л¤г饬 бЁ¬ў®«Ґ, 0-Ґв Їа®ЎҐ« , 1-Ґбвм Їа®ЎҐ«}
g:boolean; {”« Ј «ЁзЁп ў д ©«Ґ бва®ЄЁ Ў®«миҐ ¬ ЄбЁ¬ «м® ¤®ЇгбвЁ¬®©}
f:string; {ЏҐаҐ¬Ґ п ¤«п еа ҐЁп ⥪г饩 бва®ЄЁ}
name,name_bak:string; {Ё¬Ґ д ©«®ў ®аЁЈЁ « Ё १Ґаў®© Є®ЇЁЁ}
a:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп Ї®§ЁжЁ© з « а §алў®ў ў бва®ЄҐ}
e:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп Є®«-ў Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥 бва®ЄЁ}
r:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп ¤«Ё Є ¦¤®Ј® б«®ў ў бва®ЄҐ}
const
max = 70; {¬ ЄбЁ¬ «м® ў®§¬®¦ п ¤«Ё бва®ЄЁ ¤«п а бзсв }
bak = '.bak'; {а биЁаҐЁҐ ¤«п д ©« १Ґаў®© Є®ЇЁЁ}
about = '„ п Їа®Ја ¬¬ ўлЇ®«Ґ бв㤥⮬ ’Њ–„Ћ ------------';
big = '‚ д ©«Ґ бгйҐбвўгов бва®ЄЁ а §¬Ґа Є®в®але ЇаҐўли Ґв 70 § Є®ў! Џ®б«Ґ ®Ўа Ў®вЄЁ ®Ё ®бв гвмбп ЎҐ§ Ё§¬ҐҐЁ©!';
procedure open; {Џа®жҐ¤га ®вЄалвЁп д ©« , Ё ᮧ¤ ЁҐ १Ґаў®© Є®ЇЁЁ}
begin
k:=pos('.',name); {бзЁвлў ЁҐ Є®«-ў ЎгЄў ў Ё¬ҐЁ д ©« }
if k=0 then
k:=length(name)+1;
name_bak:=copy (name,1,k-1)+bak; {ЈҐҐаЁагҐвбп Ё¬п १Ґаў®Ј® д ©« }
assign (fin,name);
{$I-}
reset(fin);
{$I+}
if IOResult<>0 then {Џа®ўҐаЄ ®иЁЎ®Є ўў®¤ -ўлў®¤ ЇаЁ ®вЄалвЁЁ д ©« }
begin
writeln ('” ©« Ґ ©¤Ґ!');
halt; {…б«Ё д ©« Ґ ©¤Ґ в® § Єалвм Їа®Ја ¬¬г}
end;
close (fin);
assign(fou,name_bak); {Џа®ўҐаЄ «ЁзЁп д ©« б Ё¬ҐҐ¬ Є Є г १Ґаў®Ј®}
{$I-}
reset(fou);
{$I+}
if IOResult=0 then
begin
close(fou);
erase(fou); {…б«Ё в Є®© д ©« Ґбвм, в® гЁз⮦Ёвм}
end;
rename(fin,name_bak); {ЏҐаҐЁ¬Ґ®ўлў ЁҐ д ©« -®аЁЈЁ « ў д ©« б а биЁаҐЁҐ¬ .bak}
writeln ('‘®§¤ १Ґаў п Є®ЇЁп д ©« : ',name_bak);
reset (fin);
assign (fou,name);
rewrite (fou); {‘®§¤ ЁҐ д ©« б® Ёбе®¤л¬ Ё¬ҐҐ¬, ®вЄалвЁҐ § ЇЁбм}
end; {Є®Ґж Їа®жҐ¤гал ®вЄалвЁп д ©« }
procedure calc_end; {Џа®жҐ¤га г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
begin
m:=length (f); {¤«Ё ⥪г饩 бва®ЄЁ}
while f[m]=' ' do {Їа®¤®«¦ вм г¤ «пвм Ї®Є Ї®б«Ґ¤Ё© бЁ¬ў®« Ґ ЇҐаҐбв Ґв Ўлвм Їа®ЎҐ«®¬}
begin
delete (f,m,1); {г¤ «Ёвм Ї®б«Ґ¤Ё© бЁ¬ў®« ў бва®ЄҐ}
m:=length (f); {®ў п ¤«Ё бва®ЄЁ}
end;
end; {Є®Ґж Їа®жҐ¤гал г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
procedure calc_string; {Џа®жҐ¤га «Ё§ ⥪г饩 бва®ЄЁ (а бзсв Є®«ЁзҐбвў Ё а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў Ё в.Ї.)}
begin {4 бва®ЄЁ - з «млҐ гбв®®ўЄЁ}
b:=false; {”« Ј = 0, бЁ¬ў®« ЇаҐ¤Ё¤гйЁ© ⥪г饬㠥 пў«пвбп Їа®ЎҐ«®¬}
d:=0; {ЋЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў ў бва®ЄҐ}
c:=0; {ЋЎйҐҐ Є®«-ў® а §алў®ў ¬Ґ¦¤г б«®ў ¬Ё}
if n>=m then {…б«Ё Є®«-ў® бЁ¬ў®«®ў ў ⥪г饩 бва®ЄҐ Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м®Ј® Є®«-ў , в®...}
begin
for i:=1 to m do {Џ®®зҐас¤ п Їа®ўҐаЄ ўбҐе бЁ¬ў®«®ў ў бва®ЄҐ}
begin
if f[i]=' ' then {…б«Ё бЁ¬ў®« а ўҐ "Їа®ЎҐ«", в®...}
begin
d:=d+1; {... 㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў Їа®ЎҐ«®ў ў ⥪г饩 бва®ЄҐ}
if b=true then {Ґб«Ё ЇҐаҐ¤ нвЁ¬ Їа®ЎҐ«®¬ бв®Ёв Їа®ЎҐ«, в®...}
e[c]:=e[c]+1 {... 㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў Їа®ЎҐ«®ў ў ⥪г饩 бва®ЄҐ}
else {Ґб«Ё ЇҐаҐ¤ ⥪гйЁ¬ Їа®ЎҐ«®¬ бв®Ёв бЁ¬ў®«, в®...}
begin
c:=c+1; {㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў а §алў®ў ў бва®ЄҐ}
a[c]:=i; {‡ ЇЁб вм Ї®§ЁжЁо Є®в®а®© бв®Ёв ¤ л© Їа®ЎҐ«, Є Є Є®®а¤Ё вг з « ¤ ®Ј® а §алў }
e[c]:=1; {“бв ®ўЁвм ®ЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў ў ⥪г饬 а §а뢥 1}
b:=true; {”« Јг ЇаЁбў®Ёвм § 票Ґ, Ј®ў®ап饥 ¤«п Ї®б«Ґ¤го饣® бЁ¬ў®« зв® ЇаҐ¤л¤гйЁ© а ўҐ " "}
end;
end
else {…б«Ё ⥪гйЁ© бЁ¬ў®« Ґ а ўҐ Їа®ЎҐ«г, в®...}
b:=false; {...гбв ®ўЁвм д« Ј ў § 票Ґ Ј®ў®ап饥 Ї®б«Ґ¤го饬г бЁ¬ў®«г, зв® ЇаҐ¤л¤гйЁ© бЁ¬ў®« Ґ а ўҐ ""}
end;
for i:=1 to c-1 do {жЁЄ« а бзсв ¤«Ёл ўбҐе б«®ў ў ⥪г饩 бва®ЄҐ}
r[i]:=a[i+1]-(a[i]+e[i]);
end;
end; {Љ®Ґж Їа®жҐ¤гал «Ё§ ⥪г饩 бва®ЄЁ}
procedure calc_itog; {Џа®жҐ¤га а бзсв ®ў®Ј® Є®«-ў Їа®ЎҐ«®ў ў бва®ЄҐ}
begin
if n>=m then {…б«Ё Є®«-ў® бЁ¬ў®«®ў ў ⥪г饩 бва®ЄҐ Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м®Ј® Є®«-ў , в®...}
begin
if c>0 then {…б«Ё ў ⥪г饩 бва®ЄҐ Ґбвм е®вм ®¤Ё а §алў, в®...}
begin
z:=n-m; {ЋЇаҐ¤Ґ«ҐЁҐ Є®«-ў® ҐЁбЇ®«м§®ў ле Ї®§ЁжЁ© бЇа ў ®в Є®ж бва®ЄЁ }
all:=z+d; {ЋЎйҐҐ Є®«-ў® Їгбвле Ї®§ЁжЁ© ў ⥪г饩 бва®ЄҐ}
need:=round(all/c);{а бзсв Ґ®Ўе®¤Ё¬®Ј® Є®«-ў Їа®ЎҐ«®ў ў® ўбҐе а §алў е (б ®ЄагЈ«ҐЁҐ¬ ¤® 楫®Ј® зЁб« )}
end;
end;
end;{Є®Ґж Їа®жҐ¤гал а бзсв ®ў®Ј® Є®«-ў Їа®ЎҐ«®ў ў бва®ЄҐ}
procedure string_edit; {Џа®жҐ¤га д®а¬Ёа®ў Ёп ®ў®© ⥪Ґг饩 бва®ЄЁ б гзс⮬ Ґ®Ўе®¤Ё¬®Ј® Є®«-ў® Їа®ЎҐ«®ў}
begin
if c>0 then {…б«Ё ў ⥪г饩 бва®ЄҐ Ґбвм е®вм ®¤Ё а §алў, в®...}
begin
for i:=1 to c do {жЁЄ« § ¬Ґл Їа®ЎҐ«®ў, ў а §алў е, Ґ®Ўе®¤Ё¬л©}
begin
delete (f,a[i],e[i]); {г¤ «ҐЁҐ ⥪г饣® а §алў Їгвс¬ г¤ «ҐЁп " " зЁ п б Ї®§ЁжЁЁ ЇҐаў®Ј® " " а §а뢥}
a[i+1]:=a[i]+need+r[i]; {а бзсв ᬥ饨п з «м®© Є®®а¤Ё вл б«Ґ¤го饣® а §алў }
for j:=1 to need do
begin
insert (' ',f,a[i]); {ўбв ўЄ Їа®ЎҐ«®ў}
end;
end;
m:=length(f); {ўлпᥨҐ ®ў®© ¤«Ёл ⥪г饩 бва®ЄЁ}
if m<n then {Ґб«Ё ¤«Ё ¬ҐмиҐ зҐ¬ Ґ®Ўе®¤Ё¬® ( Ґ®Ўе®¤Ё¬® ¬ Єб.), в®..}
begin {а §Ёж ўл室Ёв § бзсв в®Ј®, зв® ЇаЁ ўлпᥨЁ Ґ®Ўе®¤Ё¬®Ј® Є®«-ў Їа®ЎҐ«®ў Їа®Ёб室Ё«® ®ЄагЈ«ҐЁҐ}
y:=n-m; {а бзсв а §Ёжл ¬Ґ¦¤г Ґ®Ўе®¤Ё¬®© ¤«Ё®©}
for i:=1 to y do {Ї® гб«®ўЁо § ¤ Ёп, Є®«-ў® Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥 ¬®¦Ґв ®в«Ёз вмбп 1}
insert (' ',f,a[i]); {ўбв ўЄ Ї® ®¤®¬г Їа®ЎҐ«г ў а §алўл зЁ п б ЇҐаў®Ј® }
end; {Є®«-ў® а §алў®ў ®ЇаҐ¤Ґ«пҐвбп а §ЁжҐ© ў ¤«ЁҐ бва®ЄЁ ®в ®¬Ё « }
if m>n then {Ґб«Ё ¤«Ё Ў®«миҐ зҐ¬ Ґ®Ўе®¤Ё¬® ( Ґ®Ўе®¤Ё¬® ¬ Єб.), в®..}
begin
y:=m-n; {а бзсв а §Ёжл ў ¤«ЁҐ}
for i:=1 to y do
delete (f,a[i],1); {г¤ «ҐЁҐ Ї® ®¤®¬г Їа®ЎҐ«г Ё§ а §алў®ў зЁ п б ЇҐаў®Ј®, Є®«-ў® г¤ «ҐЁҐ = а §ЁжҐ}
end;
end;
end; {Љ®Ґж Їа®жҐ¤гал д®а¬Ёа®ў Ёп бва®ЄЁ}
begin {ѓ« ў п Їа®Ја ¬¬ }
clrscr;
writeln (about); {‚лў®¤ нЄа Ёд®а¬ жЁЁ ®Ў ўв®аҐ а Ў®вл}
writeln;
write ('‚ўҐ¤ЁвҐ Ё¬п ⥪бв®ў®Ј® д ©« : '); {‚ў®¤ Ё¬ҐЁ । ЄвЁа㥬®Ј® д ©« }
readln (name);
open; {‚맮ў Їа®жҐ¤га ®вЄалвЁп д ©« Ё ᮧ¤ Ёп १Ґаў®© Є®ЇЁЁ}
{ з «млҐ гбв ®ўЄЁ}
n:=0; {Ќ з «м®Ґ § 票Ґ ¬ ЄбЁ¬ «м®© ¤«Ёл бва®ЄЁ}
g:=false; {ЇаЁбў®ҐЁҐ д« Јг § 票п зв® Ґв бва®Є >70}
while not eof(fin) do {жЁЄ« а бзсв ¬ ЄбЁ¬ «м®© бва®ЄЁ Ї® Є®в®а®© Ўг¤Ґв Їа®Ёб室Ёвм ўла ўЁў ЁҐ}
begin
readln (fin,f); {бзЁвлў ЁҐ ⥪г饩 бва®ЄЁ}
m:=length(f); {бзЁвлў ЁҐ ¤«Ёл ⥪г饩 бва®ЄЁ}
if m>n then {Ґб«Ё ¤«Ё ЇаҐўли Ґв 㦥 гбв ®ў«Ґго ¬ Єб ¤«Ёг, в®...}
begin
if m<=max then {Ё Ґб«Ё ¤«Ё Ґ Ў®«миҐ ¬ ЄбЁ¬ «м® ¤®ЇгбвЁ¬®© в.Ґ. 70}
n:=m; {§ ЇЁблў ЁҐ § 票п ⥪г饩 ¤«Ёл бва®ЄЁ Є Є ¬ ЄбЁ¬ «м®Ј®}
end;
end;
reset(fin); {бЎа®б д ©« з «®}
while not eof(fin) do {жЁЄ« Ї®®зҐас¤®© ®Ўа Ў®вЄЁ бва®Є ўла ўЁў ЁҐ Є ¬ Єб. бва®ЄҐ}
begin
readln (fin,f); {бзЁвлў ЁҐ ®зҐаҐ¤®© бва®ЄЁ}
m:=length(f); {бзЁвлў ЁҐ ¤«Ёл бва®ЄЁ}
if m<=max then {Ґб«Ё ¤«Ё Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м® ў®§¬®¦го ¤«Ёг, в®...}
begin
calc_end; {Їа®жҐ¤га г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
calc_string; {Џа®жҐ¤га а бзсв Є®«ЁзҐбвў Ё а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў}
calc_itog; {Џа®жҐ¤га а бзсв ®ў®Ј® а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў}
string_edit; {Џа®жҐ¤га д®а¬Ёа®ў Ёп ®ў®© бва®ЄЁ}
writeln (fou,f); {§ ЇЁбм Ї®«г祮© бва®ЄЁ ў д ©«}
end
else {Ґб«Ё ¤«Ё бва®ЄЁ ЇаҐўли Ґв ¬ ЄбЁ¬ «м® ў®§¬®¦го, в®...}
begin
writeln (fou,f); {§ ЇЁбм бва®ЄЁ д ©« ЎҐ§ Ё§¬ҐҐЁ©}
g:=true; {д« Ј гбв ў«Ёў Ґвбп ў § 票Ґ зв® Ґбвм бва®Є >70}
end;
end;
if g=true then {Ґб«Ё ў д ©«Ґ Ґбвм бва®Є >70, в®...}
writeln (big); {ўл¤ з ЇаҐ¤гЇаҐ¦¤ о饣® б®®ЎйҐЁп}
close (fin); {§ ЄалвЁҐ д ©«®ў ®аЁЁ « Ё १Ґаў®© Є®ЇЁЁ}
close (fou);
end. {Є®Ґж Їа®Ја ¬¬л}
uses CRT;
var
n:integer; {ђ §¬Ґа ¬ ЄбЁ¬ «м®© бва®ЄЁ}
d:integer; {Љ®«-ў® Їа®ЎҐ«®ў ў бва®ЄҐ}
z:integer; {Љ®«-ў® Їгбвле бЁ¬ў®«®ў ў Є®жҐ бва®ЄЁ Ґ¤®бв ойЁе ¤® max бва®ЄЁ}
all:integer; {ЋЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў z+d}
m:integer; {Љ®«-ў® бЁ¬ў®«®ў ў бва®ЄҐ}
c:integer; {Є®«-ў® а §алў®ў ў бва®ЄҐ}
need:integer; {ЌҐ®Ўе®¤Ё¬®Ґ, б।ҐҐ, Є®«-ў® Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥}
y:integer; {ђ §Ёж ў ¤«ЁҐ ®вд®а¬ вЁа®ў ®© бва®ЄЁ ®в ¬ ЄбЁ¬ «м®© ЇҐаҐ¤ ўла ўЁў ЁҐ¬}
i,j:integer; {б«г¦ҐЎлҐ ЇҐаҐ¬ҐлҐ ¤«п жЁЄ«®ў}
fin,fou: text;{ЇҐаҐ¬ҐлҐ ЁЁжЁ «Ё§ жЁЁ ўе®¤®Ј® Ё ўл室®Ј® д ©« }
k:word; {Љ®«-ў® ЎгЄў ў Ё¬ҐЁ д ©« }
b:boolean; {”« Ј «ЁзЁп Їа®ЎҐ« ў ЇаҐ¤л¤г饬 бЁ¬ў®«Ґ, 0-Ґв Їа®ЎҐ« , 1-Ґбвм Їа®ЎҐ«}
g:boolean; {”« Ј «ЁзЁп ў д ©«Ґ бва®ЄЁ Ў®«миҐ ¬ ЄбЁ¬ «м® ¤®ЇгбвЁ¬®©}
f:string; {ЏҐаҐ¬Ґ п ¤«п еа ҐЁп ⥪г饩 бва®ЄЁ}
name,name_bak:string; {Ё¬Ґ д ©«®ў ®аЁЈЁ « Ё १Ґаў®© Є®ЇЁЁ}
a:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп Ї®§ЁжЁ© з « а §алў®ў ў бва®ЄҐ}
e:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп Є®«-ў Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥 бва®ЄЁ}
r:array [0..70] of integer; {¬ ббЁў ¤«п еа ҐЁп ¤«Ё Є ¦¤®Ј® б«®ў ў бва®ЄҐ}
const
max = 70; {¬ ЄбЁ¬ «м® ў®§¬®¦ п ¤«Ё бва®ЄЁ ¤«п а бзсв }
bak = '.bak'; {а биЁаҐЁҐ ¤«п д ©« १Ґаў®© Є®ЇЁЁ}
about = '„ п Їа®Ја ¬¬ ўлЇ®«Ґ бв㤥⮬ ’Њ–„Ћ ------------';
big = '‚ д ©«Ґ бгйҐбвўгов бва®ЄЁ а §¬Ґа Є®в®але ЇаҐўли Ґв 70 § Є®ў! Џ®б«Ґ ®Ўа Ў®вЄЁ ®Ё ®бв гвмбп ЎҐ§ Ё§¬ҐҐЁ©!';
procedure open; {Џа®жҐ¤га ®вЄалвЁп д ©« , Ё ᮧ¤ ЁҐ १Ґаў®© Є®ЇЁЁ}
begin
k:=pos('.',name); {бзЁвлў ЁҐ Є®«-ў ЎгЄў ў Ё¬ҐЁ д ©« }
if k=0 then
k:=length(name)+1;
name_bak:=copy (name,1,k-1)+bak; {ЈҐҐаЁагҐвбп Ё¬п १Ґаў®Ј® д ©« }
assign (fin,name);
{$I-}
reset(fin);
{$I+}
if IOResult<>0 then {Џа®ўҐаЄ ®иЁЎ®Є ўў®¤ -ўлў®¤ ЇаЁ ®вЄалвЁЁ д ©« }
begin
writeln ('” ©« Ґ ©¤Ґ!');
halt; {…б«Ё д ©« Ґ ©¤Ґ в® § Єалвм Їа®Ја ¬¬г}
end;
close (fin);
assign(fou,name_bak); {Џа®ўҐаЄ «ЁзЁп д ©« б Ё¬ҐҐ¬ Є Є г १Ґаў®Ј®}
{$I-}
reset(fou);
{$I+}
if IOResult=0 then
begin
close(fou);
erase(fou); {…б«Ё в Є®© д ©« Ґбвм, в® гЁз⮦Ёвм}
end;
rename(fin,name_bak); {ЏҐаҐЁ¬Ґ®ўлў ЁҐ д ©« -®аЁЈЁ « ў д ©« б а биЁаҐЁҐ¬ .bak}
writeln ('‘®§¤ १Ґаў п Є®ЇЁп д ©« : ',name_bak);
reset (fin);
assign (fou,name);
rewrite (fou); {‘®§¤ ЁҐ д ©« б® Ёбе®¤л¬ Ё¬ҐҐ¬, ®вЄалвЁҐ § ЇЁбм}
end; {Є®Ґж Їа®жҐ¤гал ®вЄалвЁп д ©« }
procedure calc_end; {Џа®жҐ¤га г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
begin
m:=length (f); {¤«Ё ⥪г饩 бва®ЄЁ}
while f[m]=' ' do {Їа®¤®«¦ вм г¤ «пвм Ї®Є Ї®б«Ґ¤Ё© бЁ¬ў®« Ґ ЇҐаҐбв Ґв Ўлвм Їа®ЎҐ«®¬}
begin
delete (f,m,1); {г¤ «Ёвм Ї®б«Ґ¤Ё© бЁ¬ў®« ў бва®ЄҐ}
m:=length (f); {®ў п ¤«Ё бва®ЄЁ}
end;
end; {Є®Ґж Їа®жҐ¤гал г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
procedure calc_string; {Џа®жҐ¤га «Ё§ ⥪г饩 бва®ЄЁ (а бзсв Є®«ЁзҐбвў Ё а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў Ё в.Ї.)}
begin {4 бва®ЄЁ - з «млҐ гбв®®ўЄЁ}
b:=false; {”« Ј = 0, бЁ¬ў®« ЇаҐ¤Ё¤гйЁ© ⥪г饬㠥 пў«пвбп Їа®ЎҐ«®¬}
d:=0; {ЋЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў ў бва®ЄҐ}
c:=0; {ЋЎйҐҐ Є®«-ў® а §алў®ў ¬Ґ¦¤г б«®ў ¬Ё}
if n>=m then {…б«Ё Є®«-ў® бЁ¬ў®«®ў ў ⥪г饩 бва®ЄҐ Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м®Ј® Є®«-ў , в®...}
begin
for i:=1 to m do {Џ®®зҐас¤ п Їа®ўҐаЄ ўбҐе бЁ¬ў®«®ў ў бва®ЄҐ}
begin
if f[i]=' ' then {…б«Ё бЁ¬ў®« а ўҐ "Їа®ЎҐ«", в®...}
begin
d:=d+1; {... 㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў Їа®ЎҐ«®ў ў ⥪г饩 бва®ЄҐ}
if b=true then {Ґб«Ё ЇҐаҐ¤ нвЁ¬ Їа®ЎҐ«®¬ бв®Ёв Їа®ЎҐ«, в®...}
e[c]:=e[c]+1 {... 㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў Їа®ЎҐ«®ў ў ⥪г饩 бва®ЄҐ}
else {Ґб«Ё ЇҐаҐ¤ ⥪гйЁ¬ Їа®ЎҐ«®¬ бв®Ёв бЁ¬ў®«, в®...}
begin
c:=c+1; {㢥«ЁзЁвм 1 § 票Ґ ®ЎйҐЈ® Є®«-ў а §алў®ў ў бва®ЄҐ}
a[c]:=i; {‡ ЇЁб вм Ї®§ЁжЁо Є®в®а®© бв®Ёв ¤ л© Їа®ЎҐ«, Є Є Є®®а¤Ё вг з « ¤ ®Ј® а §алў }
e[c]:=1; {“бв ®ўЁвм ®ЎйҐҐ Є®«-ў® Їа®ЎҐ«®ў ў ⥪г饬 а §а뢥 1}
b:=true; {”« Јг ЇаЁбў®Ёвм § 票Ґ, Ј®ў®ап饥 ¤«п Ї®б«Ґ¤го饣® бЁ¬ў®« зв® ЇаҐ¤л¤гйЁ© а ўҐ " "}
end;
end
else {…б«Ё ⥪гйЁ© бЁ¬ў®« Ґ а ўҐ Їа®ЎҐ«г, в®...}
b:=false; {...гбв ®ўЁвм д« Ј ў § 票Ґ Ј®ў®ап饥 Ї®б«Ґ¤го饬г бЁ¬ў®«г, зв® ЇаҐ¤л¤гйЁ© бЁ¬ў®« Ґ а ўҐ ""}
end;
for i:=1 to c-1 do {жЁЄ« а бзсв ¤«Ёл ўбҐе б«®ў ў ⥪г饩 бва®ЄҐ}
r[i]:=a[i+1]-(a[i]+e[i]);
end;
end; {Љ®Ґж Їа®жҐ¤гал «Ё§ ⥪г饩 бва®ЄЁ}
procedure calc_itog; {Џа®жҐ¤га а бзсв ®ў®Ј® Є®«-ў Їа®ЎҐ«®ў ў бва®ЄҐ}
begin
if n>=m then {…б«Ё Є®«-ў® бЁ¬ў®«®ў ў ⥪г饩 бва®ЄҐ Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м®Ј® Є®«-ў , в®...}
begin
if c>0 then {…б«Ё ў ⥪г饩 бва®ЄҐ Ґбвм е®вм ®¤Ё а §алў, в®...}
begin
z:=n-m; {ЋЇаҐ¤Ґ«ҐЁҐ Є®«-ў® ҐЁбЇ®«м§®ў ле Ї®§ЁжЁ© бЇа ў ®в Є®ж бва®ЄЁ }
all:=z+d; {ЋЎйҐҐ Є®«-ў® Їгбвле Ї®§ЁжЁ© ў ⥪г饩 бва®ЄҐ}
need:=round(all/c);{а бзсв Ґ®Ўе®¤Ё¬®Ј® Є®«-ў Їа®ЎҐ«®ў ў® ўбҐе а §алў е (б ®ЄагЈ«ҐЁҐ¬ ¤® 楫®Ј® зЁб« )}
end;
end;
end;{Є®Ґж Їа®жҐ¤гал а бзсв ®ў®Ј® Є®«-ў Їа®ЎҐ«®ў ў бва®ЄҐ}
procedure string_edit; {Џа®жҐ¤га д®а¬Ёа®ў Ёп ®ў®© ⥪Ґг饩 бва®ЄЁ б гзс⮬ Ґ®Ўе®¤Ё¬®Ј® Є®«-ў® Їа®ЎҐ«®ў}
begin
if c>0 then {…б«Ё ў ⥪г饩 бва®ЄҐ Ґбвм е®вм ®¤Ё а §алў, в®...}
begin
for i:=1 to c do {жЁЄ« § ¬Ґл Їа®ЎҐ«®ў, ў а §алў е, Ґ®Ўе®¤Ё¬л©}
begin
delete (f,a[i],e[i]); {г¤ «ҐЁҐ ⥪г饣® а §алў Їгвс¬ г¤ «ҐЁп " " зЁ п б Ї®§ЁжЁЁ ЇҐаў®Ј® " " а §а뢥}
a[i+1]:=a[i]+need+r[i]; {а бзсв ᬥ饨п з «м®© Є®®а¤Ё вл б«Ґ¤го饣® а §алў }
for j:=1 to need do
begin
insert (' ',f,a[i]); {ўбв ўЄ Їа®ЎҐ«®ў}
end;
end;
m:=length(f); {ўлпᥨҐ ®ў®© ¤«Ёл ⥪г饩 бва®ЄЁ}
if m<n then {Ґб«Ё ¤«Ё ¬ҐмиҐ зҐ¬ Ґ®Ўе®¤Ё¬® ( Ґ®Ўе®¤Ё¬® ¬ Єб.), в®..}
begin {а §Ёж ўл室Ёв § бзсв в®Ј®, зв® ЇаЁ ўлпᥨЁ Ґ®Ўе®¤Ё¬®Ј® Є®«-ў Їа®ЎҐ«®ў Їа®Ёб室Ё«® ®ЄагЈ«ҐЁҐ}
y:=n-m; {а бзсв а §Ёжл ¬Ґ¦¤г Ґ®Ўе®¤Ё¬®© ¤«Ё®©}
for i:=1 to y do {Ї® гб«®ўЁо § ¤ Ёп, Є®«-ў® Їа®ЎҐ«®ў ў Є ¦¤®¬ а §а뢥 ¬®¦Ґв ®в«Ёз вмбп 1}
insert (' ',f,a[i]); {ўбв ўЄ Ї® ®¤®¬г Їа®ЎҐ«г ў а §алўл зЁ п б ЇҐаў®Ј® }
end; {Є®«-ў® а §алў®ў ®ЇаҐ¤Ґ«пҐвбп а §ЁжҐ© ў ¤«ЁҐ бва®ЄЁ ®в ®¬Ё « }
if m>n then {Ґб«Ё ¤«Ё Ў®«миҐ зҐ¬ Ґ®Ўе®¤Ё¬® ( Ґ®Ўе®¤Ё¬® ¬ Єб.), в®..}
begin
y:=m-n; {а бзсв а §Ёжл ў ¤«ЁҐ}
for i:=1 to y do
delete (f,a[i],1); {г¤ «ҐЁҐ Ї® ®¤®¬г Їа®ЎҐ«г Ё§ а §алў®ў зЁ п б ЇҐаў®Ј®, Є®«-ў® г¤ «ҐЁҐ = а §ЁжҐ}
end;
end;
end; {Љ®Ґж Їа®жҐ¤гал д®а¬Ёа®ў Ёп бва®ЄЁ}
begin {ѓ« ў п Їа®Ја ¬¬ }
clrscr;
writeln (about); {‚лў®¤ нЄа Ёд®а¬ жЁЁ ®Ў ўв®аҐ а Ў®вл}
writeln;
write ('‚ўҐ¤ЁвҐ Ё¬п ⥪бв®ў®Ј® д ©« : '); {‚ў®¤ Ё¬ҐЁ । ЄвЁа㥬®Ј® д ©« }
readln (name);
open; {‚맮ў Їа®жҐ¤га ®вЄалвЁп д ©« Ё ᮧ¤ Ёп १Ґаў®© Є®ЇЁЁ}
{ з «млҐ гбв ®ўЄЁ}
n:=0; {Ќ з «м®Ґ § 票Ґ ¬ ЄбЁ¬ «м®© ¤«Ёл бва®ЄЁ}
g:=false; {ЇаЁбў®ҐЁҐ д« Јг § 票п зв® Ґв бва®Є >70}
while not eof(fin) do {жЁЄ« а бзсв ¬ ЄбЁ¬ «м®© бва®ЄЁ Ї® Є®в®а®© Ўг¤Ґв Їа®Ёб室Ёвм ўла ўЁў ЁҐ}
begin
readln (fin,f); {бзЁвлў ЁҐ ⥪г饩 бва®ЄЁ}
m:=length(f); {бзЁвлў ЁҐ ¤«Ёл ⥪г饩 бва®ЄЁ}
if m>n then {Ґб«Ё ¤«Ё ЇаҐўли Ґв 㦥 гбв ®ў«Ґго ¬ Єб ¤«Ёг, в®...}
begin
if m<=max then {Ё Ґб«Ё ¤«Ё Ґ Ў®«миҐ ¬ ЄбЁ¬ «м® ¤®ЇгбвЁ¬®© в.Ґ. 70}
n:=m; {§ ЇЁблў ЁҐ § 票п ⥪г饩 ¤«Ёл бва®ЄЁ Є Є ¬ ЄбЁ¬ «м®Ј®}
end;
end;
reset(fin); {бЎа®б д ©« з «®}
while not eof(fin) do {жЁЄ« Ї®®зҐас¤®© ®Ўа Ў®вЄЁ бва®Є ўла ўЁў ЁҐ Є ¬ Єб. бва®ЄҐ}
begin
readln (fin,f); {бзЁвлў ЁҐ ®зҐаҐ¤®© бва®ЄЁ}
m:=length(f); {бзЁвлў ЁҐ ¤«Ёл бва®ЄЁ}
if m<=max then {Ґб«Ё ¤«Ё Ґ ЇаҐўли Ґв ¬ ЄбЁ¬ «м® ў®§¬®¦го ¤«Ёг, в®...}
begin
calc_end; {Їа®жҐ¤га г¤ «ҐЁп Їа®ЎҐ«®ў ў Є®жҐ бва®ЄЁ}
calc_string; {Џа®жҐ¤га а бзсв Є®«ЁзҐбвў Ё а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў}
calc_itog; {Џа®жҐ¤га а бзсв ®ў®Ј® а бЇ®«®¦ҐЁп Їа®ЎҐ«®ў}
string_edit; {Џа®жҐ¤га д®а¬Ёа®ў Ёп ®ў®© бва®ЄЁ}
writeln (fou,f); {§ ЇЁбм Ї®«г祮© бва®ЄЁ ў д ©«}
end
else {Ґб«Ё ¤«Ё бва®ЄЁ ЇаҐўли Ґв ¬ ЄбЁ¬ «м® ў®§¬®¦го, в®...}
begin
writeln (fou,f); {§ ЇЁбм бва®ЄЁ д ©« ЎҐ§ Ё§¬ҐҐЁ©}
g:=true; {д« Ј гбв ў«Ёў Ґвбп ў § 票Ґ зв® Ґбвм бва®Є >70}
end;
end;
if g=true then {Ґб«Ё ў д ©«Ґ Ґбвм бва®Є >70, в®...}
writeln (big); {ўл¤ з ЇаҐ¤гЇаҐ¦¤ о饣® б®®ЎйҐЁп}
close (fin); {§ ЄалвЁҐ д ©«®ў ®аЁЁ « Ё १Ґаў®© Є®ЇЁЁ}
close (fou);
end. {Є®Ґж Їа®Ја ¬¬л}
Соседние файлы в папке Курсовой Алгоритмические языки (Форматирование текста)