IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Двумерные массивы - Матрицы
сообщение
Сообщение #1


Гость






Пожалуйста, помогите решить задачу :

Дан массив целых чисел. Произвести его сортировку так, чтобы сначала в возрастающем порядке шли все отрицательные числа, а потом в убывающем порядке все положительные числа.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Студент 3-к группы (ИГТК)
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Артём

Репутация: -  1  +


Исходный массив:
-5 5 1
-10 19 0
8 -2 -100

Нужно получить:
-100 -10 -5
-2 0 1
5 8 19

Так чтоль?

Дык тут всё понятно. Воспользуйся "пузырьковой" сортировкой.

Ссылка: Сортировка массива
Ссылка на внешнюю страницу

В своей задаче ты должен сделать 4 цикла на сортировку. На обход одного массива нужно 2 цикла, а т.к. у тебя двухмерный массив, значит 2*2=4.

Если ты так и не понял, покажи что ты сделал.

Будем помогать.

Сообщение отредактировано: neic -


--------------------
Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






neic, ты думаешь в FAQ-е этого форума нет методов сортировки? Ошибаешься, есть...

Кстати, учись ЧИТАТЬ а не просматривать, я тебе уже говорил об этом. Сказано, что не ВСЕ значения в одном порядке, а одни по возрастанию, а другие - по убыванию.

Автору:
сортировка делается в любом случае за один проход - два цикла, 4 здесь никому не нужны, одномерный это массив, или двумерный - неважно, надо только правильно написать функцию сравнения... Вот, смотри (немного преобразованная функция отсюда: Методы сортировок ):

function f(a, b: integer): boolean;
begin
if (a > 0) and (b > 0) then f := (b > a)
else f := a > b
end;
procedure bubble(var ar: array of integer; n: integer);
var i, j, T: integer;
begin
for i := 1 to n do
for j := n downto i + 1 do
if f(ar[pred(j) - 1], ar[j - 1]) then begin
T := ar[pred(j) - 1]; ar[pred(j) - 1] := ar[j - 1]; ar[j - 1] := T
end
end;

type
matrix = array[1 .. 3, 1 .. 3] of integer;
arr = array[0 .. 0] of integer;

procedure print(const mx: matrix);
var i, j: integer;
begin
for i := 1 to 3 do begin
for j := 1 to 3 do write(mx[i, j]:5);
writeln;
end;
end;

const
mx: matrix = (
(-5, 5, 1), (-10, 19, 0), (8, -2, -100)
);


begin
bubble(arr(mx[1, 1]), 9);
print(mx);
end.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Всё работает! Большое спасибо! smile.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.09.2020 23:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name