Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
4.71 Кб
Скачать
{¬Ґв®¤ ЄгзЁ}

uses CRT;

type
arrsort= array[0..1200] of integer;
var
arr, arr1: arrsort; {Њ ббЁў arr1 ­г¦Ґ­ Є Є Є®ЇЁп ¬ ббЁў   rr}
rez: array [1..2, 2..1200] of integer; {Њ ббЁў б १г«мв в ¬Ё}
str: string[1];
k: integer;
j: 1..3;
fin: text;

{Ђ­ «Ё§ १г«мв в®ў. ’® Ґбвм Ї®ЁбЄ ­ Ё¬Ґ­м襣® Є®«-ў  ЁвҐа ©Ёж Ё ®Ў¬Ґ­®ў
Џ® бгвЁ rez - ўе®¤пйЁ© ¬ ббЁў.
Џа®жҐ¤га  Їа®б¬ ваЁў Ґв ¬ ббЁў १г«мв в®ў Ё ­ е®¤Ёв зЁб«®,
а ў­®Ґ ®в­®иҐ­Ёо ®в१Є®ў, ­  Є®в®алҐ ¤Ґ«Ёвбп ¬ ббЁў,
ЇаЁ Є®в®а®¬ ¤®бвЁЈ Ґвбп ­ Ё¬Ґ­м襥 Є®«ЁзҐбвў® ®Ў¬Ґ­®ў Ё ЁвҐа жЁ©}
Procedure analiz;
var ob, obrez, it, itrez, i: integer;
begin
ob:=2;
obrez:=rez[2, 2]; {ЃҐаҐ¬ ­ з «м­лҐ §­ зҐ­Ёп}
it:=2;
itrez:=rez[1, 2];
for i:= 3 to ((arr[0] div 2) + 1 ) do {€ ЁйҐ¬ Ї® жЁЄ¤г...}
begin
if obrez > rez[2, i] then {­ Ё¬Ґ­м襥 Є®«-ў® ®Ў¬Ґ­®ў}
begin
obrez:= rez[2, i];
ob:=i;
end;
if itrez > rez[1, i] then {€ ЁвҐа жЁ©}
begin
itrez:= rez[1, i];
it:=i; {€ г§­ с¬ Є®нддЁжҐ­в}
end;
end;
writeln(fin, 'Ќ Ё¬Ґ­м襥 Є®«ЁзҐбвў® ЁвҐа жЁ© ЇаЁ k = ', it, ' а ў­® ', itrez);
writeln(fin, 'Ќ Ё¬Ґ­м襥 Є®«ЁзҐбвў® ®Ў¬Ґ­®ў ЇаЁ k = ', ob, ' а ў­® ', obrez);
writeln('Ќ Ё¬Ґ­м襥 Є®«ЁзҐбвў® ЁвҐа жЁ© ЇаЁ k = ', it, ' а ў­® ', itrez);
writeln('Ќ Ё¬Ґ­м襥 Є®«ЁзҐбвў® ®Ў¬Ґ­®ў ЇаЁ k = ', ob, ' а ў­® ', obrez);
writeln;
end;


{ѓҐ­Ґа жЁп ¬ ббЁў .
‚室­®Ґ ¤ ­­®Ґ - б ¬ ¬ ббЁў.
J - ўҐ«ЁзЁ­  е а ЄвҐаЁ§гой п ¬ ббЁў
}
Procedure enter(var arr: arrsort; j: integer);
var
i: integer;
begin
Case j of
1: begin
Write('‚Ћ‡ђЂ‘’Ђћ™€‰');
Write(fin, '‚Ћ‡ђЂ‘’Ђћ™€‰');
for i:=1 to arr[0] do
arr[i]:=i;
end;
2: begin
Write('“Ѓ›‚Ђћ™€‰');
Write(fin, '“Ѓ›‚Ђћ™€‰');
for i:=1 to arr[0] do
arr[i]:=arr[0]-i;
end;
3: begin
Write('‘‹“—Ђ‰Ќ›‰');
Write(fin, '‘‹“—Ђ‰Ќ›‰');
for i:=1 to arr[0] do
arr[i]:=random(arr[0]);
end;
end;
Writeln(fin, ' ЊЂ‘‘€‚');
Writeln(' ЊЂ‘‘€‚');
end;

{‘ ¬  б®авЁа®ўЄ . ‚室­®Ґ ¤ ­­®Ґ - Є®нддЁжҐ­в, а ў­л© ®в­®иҐ­Ёо ¤«Ё­ ®в१Є®ў, ­  Є®в®алҐ ¤Ґ«Ёвбп ¬ ббЁў}
procedure Quicksort(k:integer);
procedure Sort(var arr: arrsort; l,r:integer);
var i,j:integer; x,w:integer;
begin
{гбв ­®ўЄ  Ја ­Ёж а §¤Ґ«Ґ­Ёп}
i:=l;
j:=r;
{ўлЎ®а Ў амҐа  x}
x := arr[l+(r-l) div k];
{а §¤Ґ«Ґ­ЁҐ н«Ґ¬Ґ­в®ў ®в­-­® x}
repeat
{Ї®ЁбЄ н«Ґ¬Ґ­в®ў ¤«п ®Ў¬Ґ­ }
while arr[i] < x do i:=i+1;
while x < arr[j] do j:=j-1;
rez[1, k]:=rez[1, k]+1; {“ўҐ«ЁзЁў Ґ¬ бзсвзЁЄ Є®«-ў  ЁвҐа жЁ©}
if i<j then
begin
rez[2, k]:=rez[2, k]+1; {€ ®Ў¬Ґ­®ў}
{®Ў¬Ґ­  [i] Ё a[j] }
w:=arr[i]; arr[i]:=arr[j]; arr[j]:=w;
i:=i+1; j:=j-1
end;
i:=i+1; j:=j-1
until i > j;
if l < j then Sort(arr,l,j);
if i < r then Sort(arr, i,r)
end;{Sort}
begin
rez[1, k]:=0; {ЋЎ­г«пҐ¬ бзсвзЁЄЁ Є®«-ў  ЁвҐа жЁ©}
rez[2, k]:=0; {€ ®Ў¬Ґ­®ў}
Sort(arr1, 1, arr[0]);
writeln(fin, 'ЏаЁ k = ', k, ' Є®«ЁзҐбвў® ЁвҐа жЁ© а ў­® ', rez[1, k], ',   ®Ў¬Ґ­®ў = ', rez[2, k]);
end;


begin
randomize; {ЊҐи Ґ¬ зЁб« }
assign(fin, 'F:\tpascal\2semestr\laba2\arr.txt'); {” ©«, ў Є®в®ал© Ўг¤Ґв ЇЁб вмбп
§ ўЁбЁ¬®бвм Є®«-ў  ЁвҐа жЁ© Ё ®Ў¬Ґ­®ў ®в Є®нддЁжҐ­в  Ё гЇ®а冷祭­®бвЁ ¬ ббЁў }
rewrite(fin);
repeat
{---‚ў®¤ ¬ ббЁў ---}
repeat {‘Їа иЁў Ґ¬ ¤«Ё­г ¬ ббЁў }
write('‚ўҐ¤ЁвҐ ¤«Ё­г ¬ ббЁў : ');
readln(arr[0]);
until ((arr[0]> 0) and (arr[0]<= 1200));
writeln('‚ ¬ ббЁўҐ ', arr[0], ' н«Ґ¬Ґ­в®ў');
writeln;
for j:=1 to 3 do {ЏҐаҐЎЁа Ґ¬ ¬ ббЁўл ўбҐе 3 вЁЇ®ў}
begin
enter(arr, j); {ѓҐ­ҐаЁ¬ ¬ ббЁў}
for k:=2 to ((arr[0] div 2) + 1 ) do {‚лЎЁа Ґ¬ Є®нддЁжҐ­в ®в 2(Џ®в®¬г зв® 1 - нв® Ї® бгвЁ ­Ґ ¤Ґ«Ґ­ЁҐ.)
¤® ®вйЁЇ«Ґ­Ёп Ї® 1 н«-вг. ЃҐаҐ¬ ¤Ґ«Ґ­ЁҐ ­  2 в-Є ў бЁ«г бЁ¬¬ҐваЁЁ १г«мв в Ўг¤Ґв ¤гЎ«Ёа®ў вмбп }
begin
arr1:=arr; {Љ®ЇЁа㥬 ¬ ббЁў!!!}
QuickSort(k);
end;
Writeln('Ђ­ «Ё§ १г«мв в®ў');
analiz; {€  ­ «Ё§Ёа㥬 १г«мв вл}
end;
repeat
textcolor(2); writeln('Џ®ўв®аЁвм? Y Ё«Ё N?');
textcolor(7); readln(str);
until (str='Y') or (str='y') or (str='n') or (str='N');
until(str = 'n') or (str='N');
end.

{ЋЈа ­ЁзҐ­ЁҐ ў 1200 н«Ґ¬Ґ­в®ў бЁ«м­® § ўл襭®. Џа ЄвЁзҐбЄЁ ЇаЁ¬Ґа­® 500 н«Ґ¬Ґ­в®ў. Џа®Ја ¬¬  ўлЇЁблў Ґв ў д ©« бва®Єг ўЁ¤ 
'ЏаЁ k = ____ Є®«ЁзҐбвў® ЁвҐа жЁ© а ў­® ____   ®Ў¬Ґ­®ў = ____' Ј¤Ґ Є - Є®нддЁжҐ­в, а ў­л© ®в­®иҐ­Ёо ¤«Ё­ ¬ ббЁў®ў Ї®б«Ґ ¤Ґ«Ґ­Ёп ­  2 з бвЁ.
Џ®б«Ґ нв®Ј® ­ е®¤Ёвбп ­ Ё¬Ґ­м襥 Є®«-ў® ЁвҐа жЁ© Ё ®Ў¬Ґ­®ў Ё ўлў®¤пвбп ᮮ⢥вбвўгойЁҐ Ё¬ Є®нддЁжҐ­вл.
‚ ЇаЁ­жЁЇҐ ¬®¦­® а бᬮваҐвм ҐйҐ Ё Ї®«м§®ў вҐ«мбЄЁ© ¬ ббЁў Ё ¬ ббЁў - б ¬л© Ї«®е®© ў аЁ ­в, Ј¤Ґ Ўг¤Ґв ­ ЁЎ®«м襥 Є®«-ў® ®Ў¬Ґ­®ў. Ќ ЇаЁ¬Ґа arr[8] = [3,5,7,8,6,4,2,1]}
Соседние файлы в папке laba2