Сделать анализ задачи!
Задача: Переделать так, чтобы числа от 10 до 6555 сортировались по убыванию и записывались в начало массива.

type mass=array[1..200] of integer;
//перестановка чисел от 10 до 6555 вперед
procedure Forvard(var b:mass;m:integer;var k:integer);
var i,j,x:integer;
begin
k:=0;
for i:=1 to m do
if (b[i]>=10)and(b[i]<=6555)then
begin
k:=k+1;
x:=b[i];
for j:=i downto k+1 do
b[j]:=b[j-1];
b[k]:=x;
end;
end;
//быстрая сортировка первых К чисел
procedure QuickSort(var b:mass; first, last: integer);
var f, l, mid, count: integer;
begin
f:=first;
l:=last;
mid:=b[(f+l) div 2]; {вычисление опорного элемента}
repeat
while b[f]>mid do inc(f);
while b[l] if f<=l then {перестановка элементов}
begin
count:=b[f];
b[f]:=b[l];
b[l]:=count;
inc(f);
dec(l);
end;
until f>l;
if first if f end;
var a:mass;
n,k,i:integer;
begin
randomize;
repeat
write('Введите размер массива от 10 до 200 n=');
readln(n);
until n in [10..200];
writeln('Исходный масссив');
for i:=1 to n do
begin
a[i]:=random(7000);
write(a[i]:5);
end;
writeln;
Forvard(a,n,k);
QuickSort(a,1,k);
writeln('Отсортированный массив');
for i:=1 to n do
write(a[i]:5);
end.

ayzhan1979 ayzhan1979    1   25.02.2020 17:55    1

Другие вопросы по теме Информатика