Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Beseech
Дан одномерный массив A из 20 элементов. Сформировать одномерный массив B из 20 элементов такой,что в нем сначало идут отрицательные,затем нулевые,а затем положительные элементы массива A. Вывести на экран исходный и сформулированный массивы.
Tan
Вообщем получается твоя цель отсортировать массив по возрастанию, поиск подключи.
-=Domestos=-
Берешь любую сортировку, например "Пузырек"
Bubble
for i:=1 to (n-1) do
begin
for j:=1 to (n-1) do
begin
if A[j]>A[j+1] then
begin
t:=A[j];
A[j]:=A[j+1];
A[j+1]:=t;
end;
end;
end;

Копируешь массив А целиком в В, а потом сортируешь B - вот и всё!
Tan
Вот я писал пузырёк в далёкие годы :
 Uses crt;
Const N = 20;
var ms : array [1..N] of integer;
i : integer;
procedure BUBLE(var w: array of integer) ;
var i, j, d : integer;
begin
for i:=1 to N-1 do
for j:=i+1 to N do
if w[i]> w[j] then
begin d:= w[i];
w[i]:=w[j];
w[j]:=d;
end;
end;
begin
Clrscr;
randomize;
for i:=1 to N do
begin
ms[i]:=random(15)-7;
write (ms[i]:3);
end;
writeln;
Buble (ms);
for i:=1 to N do write (ms[i]:3);
readkey;
end.
Алена
Долго будем постить в тысячный раз одно и то же? Сколько же повторять, не загромождайте вы топики одними и теми же вопросами и ответами, типа твоего, Tan, в частности... С чего бы ты решил, что надо сортировать?

Цитата
Копируешь массив А целиком в В, а потом сортируешь B - вот и всё!
Нет, не все! Не вводи человека в заблуждение... Нельзя здесь использовать сортировку, при этом поменяется порядок следования положительных/отрицательных элементов относительно друг друга!
Адель
Beseech уточни, прога должна сортировать, или же сохранять порядок следдования между элементами (отриц, нул, положит)

ps Tan у тебя первый элемент остается преждним в любом случае, а остальные произвольно как то... blum.gif
КМА
Tan, у тебя ошибка во всяком случае это сортировка точно не пузырек. -=Domestos=- в принципе написал правильную сортировку, единственное, что можно подкорректировать, то что второй цикл стоит начинать не с 1 элемента, а с i так по крайней мере мы сэкономим несколько шагов. Вот окончательный вариант:


procedure sortBubble (Var A: array [1..n] of integer);
Var i, j: byte;
t: integer;
Begin
for i:=1 to (n-1) do
for j:=i to (n-1) do
if A[j]>A[j+1]
then
begin
t:=A[j];
A[j]:=A[j+1];
A[j+1]:=t
end
End;

Алена
КМА, хорошо... Ты-то с чего решил, что нужно сортировать? Что, телепат?

Да, сколько раз можно постить свои коды? 100? 1000? Сколько нулей еще добавить? Ребята, дружно поднимаем глазки вверх!

Цитата(Правила Раздела)
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
Вот и пользуйтесь отлаженными решениями, вместо того, чтобы постить самопальные!

Методы сортировок
КМА
Алена, я лишь переправил Tan и -=Domestos=-, т. к. не увидел рациональной сортировки, по поводу задачи у меня другой алгоритм и другие мысли. Я потом увидел твой пост, и не стал задавать уточняющий вопрос. Прости если так сильно тебя зацепил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.