ПРИМЕР:
Даны два массива
1) 34 12 54 24 3 6
2) 34 56 67 3 4 0 12
Т.е необходимо:
а)отсортировать массив 1) по возрастанию до МАКСИМАЛЬНОГО ЗНАЧЕНИЯ = 54
таким образом чтобы получился массив 12 34 54 24 3 6
б)После этот же массив 1) необходимо отсортировать по возрастанию но уже ПОСЛЕ максимального элемента массива т.е. получится 34 12 54 3 6 24
Аналогичные опреации проделать с массивом 2)
Вот моя зарисовка.........
program PRIM_2;
const na=5; nb=10;
type mas=array[1..nb] of real;
var a, b:mas;
i:integer;
Procedure SOZD(var d:mas; k:integer);{создание массива}
begin
for i:=1 to k do
d[i]:=random*500;
end;
Procedure VIVOD(d:mas; k:integer; t:string);{вывод массива}
begin
writeln(t);
for i:=1 to k do
write(d[i]:0:0, ' ');
writeln;
end;
function max(d:mas; k:integer):real;{выявление максимального элемента массива}
var i:integer; m:real; c:real;
begin
m:=-maxint;
for i:=1 to k do
if d[i]>m then m:=d[i];
max:=m;
end;
procedure SORT(var d:mas; k:integer);{попытка отсортировать массив до
максимального элемента}
var c:real;
begin
i:=1;
repeat
if d[i]>d[i+1] then
begin
c:=d[i]; d[i]:=d[i+1]; d[i+1]:=c;
if i>1 then dec(i)
end
else inc(i);
until i>=k or d[i]=???;
{так и не понял чему приравнять d[i] чтоб он прекпащал сортировку,
т.е выходил из цикла когда d[i] равнялся бы максимальному значению в массиве}
end;
BEGIN
randomize;
SOZD(a, na); VIVOD(a, na, 'massiv A');
writeln('max_mas A=', max(a, na):0:0);
SORT(a, na); VIVOD(a, na, 'massiv A posle');
SOZD(b, nb); VIVOD(b, nb, 'massiv B');
writeln('max_mas B=', max(b, nb):0:0);
readln
END.
Больше всего меня интересует как отсортировать массив по возрастанию до максимального значения и после максимального значения....
P.S.за ранее благодарен за содействие))
М | Большая просьба: заключай программный код в теги! Lapp |