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

> Правила раздела!

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

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





Группа: Пользователи
Сообщений: 5
Пол: Мужской

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


Отсортировать элементы с нечетными значениями в порядке
– возрастания, если сумма элементов с четными значениями больше суммы эле-ментов с нечетными;
– убывания, если сумма элементов с четными значениями меньше суммы эле-ментов с нечетнымими.

Вопрос,как из массива выделить четные и нечетные элементы для дальнейшего сумирования?

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Будь внимательнее: элементы с нечетными значениями, или элементы с нечетными индексами? Обычно тут многие ошибаются...

Цитата
как из массива выделить четные и нечетные элементы для дальнейшего сумирования?
А не надо ничего выделять. Заводи два счетчика: один для четных значений, другой - для нечетных. А потом проходи по массиву циклом и суммируй элементы. Четность элементов проверяется любым из способов: либо (a[ i ] and 1 = 0), либо (a[ i ] mod 2 = 0), можно и так: not odd(a[ i ]). И добавляй, в зависимости от выполнения условия, либо к одному счетчику, либо к другому.

В поиске, кстати, можно поискать, реализация подобной сортировки мной выкладывалась. Как минимум один раз; может, кто-то еще свою постил - не помню.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






> – возрастания, если сумма элементов с четными значениями больше суммы эле-ментов с нечетными;
> – убывания, если сумма элементов с четными значениями меньше суммы эле-ментов с нечетнымими.

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





Группа: Пользователи
Сообщений: 5
Пол: Мужской

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


ну циклом например

for i:=1 to N do
begin
if odd(i) then a:=b{нечет}
else a:=c{чет};
b:=b+1;
c:=c+1

end;


как то так?



Добавлено через 1 мин.
Цитата(-TarasBer- @ 3.05.2011 19:18) *

> – возрастания, если сумма элементов с четными значениями больше суммы эле-ментов с нечетными;
> – убывания, если сумма элементов с четными значениями меньше суммы эле-ментов с нечетнымими.

А если равно?


не сортировать

Сообщение отредактировано: dff -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Цитата
как то так?
Лучше - вот так:

s_even := 0;  // сумма четных
s_odd := 0; // сумма нечетных
for i := 1 to n do
if odd(a[ i ]) then // нечетный элемент ?
s_odd := s_odd + a[ i ]
else
s_even := s_even + a[ i ];
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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