1.Создать два одномерных массива А и В различной длины. Рассортировать числа до максимального значения по возрастанию. Результат вывести. Затем рассортировать числа, расположенные после максимального значения по возрастанию и снова вывести. И, наконец, рассортировать весь массив по возрастанию и снова вывести.
с применением процедур и функций.
Результаты выводить в отдельных окнах и различным цветом.
Pascal-процедуры и функции
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 5
- Зарегистрирован: 07 фев 2007, 17:09
- Контактная информация:
А что со вторым массивом делать?
ПРИМЕР:
Даны два массива
1) 34 12 54 24 3 6
2) 34 56 67 3 4 0
Т.е необходимо:
а)отсортировать массив 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:=random*500;
end;
Procedure VIVOD(d:mas; k:integer; t:string);{вывод массива}
begin
writeln(t);
for i:=1 to k do
write(d: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>m then m:=d;
max:=m;
end;
procedure SORT(var d:mas; k:integer);{попытка отсортировать массив до
максимального элемента}
var c:real;
begin
i:=1;
repeat
if d>d[i+1] then
begin
c:=d; d:=d[i+1]; d[i+1]:=c;
if i>1 then dec(i)
end
else inc(i);
until i>=k or d=???;{так и не понял чему приравнять d чтоб он прекпащал сортировку, т.е выходил из цикла когда d равнялся бы максимальному значению в массиве}
end;
[I]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.за ранее благодарен за содействие))
Даны два массива
1) 34 12 54 24 3 6
2) 34 56 67 3 4 0
Т.е необходимо:
а)отсортировать массив 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:=random*500;
end;
Procedure VIVOD(d:mas; k:integer; t:string);{вывод массива}
begin
writeln(t);
for i:=1 to k do
write(d: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>m then m:=d;
max:=m;
end;
procedure SORT(var d:mas; k:integer);{попытка отсортировать массив до
максимального элемента}
var c:real;
begin
i:=1;
repeat
if d>d[i+1] then
begin
c:=d; d:=d[i+1]; d[i+1]:=c;
if i>1 then dec(i)
end
else inc(i);
until i>=k or d=???;{так и не понял чему приравнять d чтоб он прекпащал сортировку, т.е выходил из цикла когда d равнялся бы максимальному значению в массиве}
end;
[I]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.за ранее благодарен за содействие))
-
- Сообщения: 5
- Зарегистрирован: 07 фев 2007, 17:09
- Контактная информация:
xxBOBAHxx писал(а): Больше всего меня интересует как отсортировать массив по возрастанию до максимального значения и после максимального значения....
Нужно усложнить процедуру сортировки так, чтобы у неё былы два параметра, показывающие какой участок массива нужно сортировать. Начало и конец конечно же.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
xxBOBAHxx, для сохранения форматирования исходника обрамляйте его тегами
[noparse]
либо
[syntax='pascal'] [/syntax]
[/noparse]
[noparse]
Код: Выделить всё
[syntax='pascal'] [/syntax]
[/noparse]
