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

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

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

 
 Ответить  Открыть новую тему 
> Одномерный массив Need Help, чё-то не пойму как делать
lermontoff
сообщение 16.02.2006 21:22
Сообщение #1





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

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


Вообщем сама задача...
(Если не решу до среду то мне mega_chok.gif )

Составить Алгоритм и программу ( мне или то или то smile.gif ) , которые в массиве из N действительных чисел (N не превышает 25)упорядочивают по убыванию отрицательные числа и по возрастанию положительные.
Взаимное расположение отрицательных и положительных чисел сохраняется.Вывести на экран исходный и модифицированный массивы. (Дополнительный массив создавать нельзя smile.gif )

особую сложность составил сабж выделенный красным .

ЗАРАНЕЕ СПАСИБО smile.gif

Сообщение отредактировано: lermontoff - 16.02.2006 21:22
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 16.02.2006 21:25
Сообщение #2


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

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


храни в двух дополнительных переменных индексы предыдущего отрицательного и предыдущего положительного эл-та массива...


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.02.2006 21:44
Сообщение #3


Гость






GoodWind, а пошаманить? smile.gif

lermontoff, в принципе, можно ЧУТЬ-ЧУТЬ подправить процедуру Bubble из нашего FAQ-а, чтобы она делала то, что тебе нужно... Hint: для этого нужно передать в процедуру еще один дополнительный параметр... yes2.gif

const
n = 10;
type
arrType = array[1 .. n] of integer;

procedure Bubble(var ar: arrType; const n: integer;
positive: boolean);
var i, j, pred_j, T: Integer;
begin
for i := 1 to n do begin
if (ar[i] < 0) = positive then continue;


for j := n downto i+1 do begin
if (ar[j] < 0) = positive then continue;

pred_j := pred(j);
while (pred_j > 0) and ((ar[pred_j] < 0) = positive) do dec(pred_j);
if pred_j = 0 then break;

if (ar[Pred_j] > ar[j]) = positive then begin
T := ar[Pred_j]; ar[Pred_j] := ar[j]; ar[j] := T
end
end;
end
end;


const
arr: arrType =
(1, 42, 33, -14, 5, -6, 7, -8, 9, 10);
var
i: integer;
begin
for i := 1 to n do
write(arr[i]:4);
writeln;

bubble(arr, n, true);
bubble(arr, n, false);

for i := 1 to n do
write(arr[i]:4);
writeln;
end.
 К началу страницы 
+ Ответить 

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

 



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