program laba1;
const
N=20;
var
M:array[1..N+1] of integer;
y1,y2,y3,x,x1,x2,z,i,kluch,rez:integer;
ch:char;
function search(kluch:integer):integer;
begin
M[N+1]:=kluch;
i:=1;
while M[i]<>kluch do i:=i+1;
if i=N+1 then search:=0
else search:=i
end;
procedure Vivod;
begin
for i:=1 to N do write(M[i],' ');
writeln(' ');
end;
procedure Algoritm(al:byte);
var
temp,item:integer;
begin
case al of
1:
begin
Temp:=M[item];
for i:=Item downto 2 do M[I]:=M[I-1];
M[1]:=Temp;
end;
2:
begin
if Item<>1 then
begin
Temp:=M[Item];
M[Item]:=M[item-1];
M[Item-1]:=Temp;
end;
end;
end;
end;
begin
Randomize;
for i:=1 to N do M[i]:=random(100);
writeln('Massiv:');
Vivod;
rez:=0;
while rez=0 do
begin
writeln('Vvedite kluch poiska');
readln(kluch);
z:=search(kluch);
while z=0 do begin
writeln('Kluch v massive ne nayden, poprubuyte vvesti ewe raz');
writeln('Vvedite kluch poiska');
readln(kluch);
z:=search(kluch);
end;
begin
ch:=' ';
writeln('Esli vi xotite vipolnit sortirovku metodom puzirka, to nazmite 1,'+
' a esli metodom priamogo dostupa-2');
while (ch<>'1') and (ch<>'2') do Readln(ch);
case ch of
'1':algoritm(1);
'2':algoritm(2);
end;
end;
Writeln('Rezultat:');
Vivod;
ch:=' ';
Writeln('Xotite ewe? (y/n)');
while (ch<>'y') and (ch<>'n') do readln(ch);
case ch of
'n':exit;
'y':rez:=0;
end;
end;
end.
Задача на поиск ключа в файле и дальнейшую мини-сортировку, Немного не пашет, точнее не меняет местами в сортировках Help |