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

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

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

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


Гость






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

Дан массив целых чисел. Произвести его сортировку так, чтобы сначала в возрастающем порядке шли все отрицательные числа, а потом в убывающем порядке все положительные числа.
 К началу страницы 
+ Ответить 
neic
сообщение 17.12.2007 17:24
Сообщение #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 - 17.12.2007 17:25


--------------------
Жизнь - это лестница. Когда одна ступень проваливается, 2-ая нога находиться на второй ступеньке, а значит есть и второй шанс... ©
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.12.2007 18:06
Сообщение #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.

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


Гость






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

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

 



- Текстовая версия 30.05.2024 16:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"