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

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

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

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


Гость






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

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


Гость






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.

 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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