Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Wellshumor
0 / 0 / 0
Регистрация: 18.09.2018
Сообщений: 10
1

Разместить элементы массива так,чтоб сначала шли все положительные числа,а потом-отрицательные, не создавая новый массив

18.09.2018, 18:51. Просмотров 103. Ответов 4
Метки нет (Все метки)

Дан массив из n целых чисел. Не используя новый массив, нужно разместить элементы массива так, чтобы сначала шли все положительные числа, а потом - отрицательные. Помогите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2018, 18:51
Ответы с готовыми решениями:

Преобразовать файл так, чтоб сначала шли отрицательные числа, а потом положительные
Создать файл целых чисел Р. Преобразовать файл таким образом, чтоб сначала шли отрицательные числа,...

Переписать компоненты исходного файла в новый так, чтобы сначала шли положительные, потом отрицательные числа
не знаю как написать( язык pascal помогите пожалуйста Создать файл, компоненты которого являются...

Переставить элементы массива так, чтобы сначала шли нули, потом отрицательные, а затем положительные элементы
Дан одномерный массив, который содержит не более 60 вещественных чисел, среди которых есть...

Видоизменить массив таким образом, чтобы сначала шли все положительные элементы, потом все отрицательные
Принять в процедуру некоторый заполненный массив с отрицательными и положительными элементами....

Переписать компоненты файла f в файл g так, чтобы в файле g сначала шли положительные, потом отрицательные числа
помогите пожалуйста Дан файл f компоненты которого являются целыми числами. Никакая из...

4
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3904 / 2561 / 2085
Регистрация: 22.11.2013
Сообщений: 7,160
18.09.2018, 19:37 2
А нули куда?
Отсортируйте, используя такое сравнение (получите такой порядок: <0, >0, 0):
Pascal
1
2
3
4
function IsLess(a, b: Integer): Boolean;
begin
  IsLess:=(a<0) and (b>=0) or (a>0) and (b=0);
end;
0
Puporev
Модератор
54697 / 42111 / 29076
Регистрация: 18.05.2008
Сообщений: 99,376
18.09.2018, 19:55 3
Цитата Сообщение от bormant Посмотреть сообщение
А нули куда?
Вообще без нолей.
Pascal
1
2
3
4
for i:=1 to n do
repeat
a[i]:=-10+random(21);
until a[i]<>0;
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3904 / 2561 / 2085
Регистрация: 22.11.2013
Сообщений: 7,160
18.09.2018, 20:05 4
Ну 0 -- целое число, по условию из возможных элементов массива не исключен ;-)

Добавлено через 1 минуту
Ежели вдруг нули в середину (<0, 0, >0), то:
Pascal
1
2
3
4
function IsLess(a, b: Integer): Boolean;
begin
  IsLess:=(a<0) and (b>=0) or (a=0) and (b>0);
end;
0
ФедосеевПавел
Модератор
3670 / 2038 / 843
Регистрация: 01.02.2015
Сообщений: 6,776
21.09.2018, 22:43 5
Или, рассуждая так.
Пусть два числа A и B - соседи массива. Таблица истинности для знаковых бит. Если результат равен 1 - требуется перестановка.
Код
A B | R
0 0 | 0
0 1 | 1
1 0 | 0
1 1 | 0
Получаем целевую функцию R=(/A)*B
И в сортировке
Pascal
1
2
3
4
5
6
7
        R := ((not (A[j - 1])) and (A[j]));
        if R<0 then
        begin
          x := A[j];
          A[j] := A[j - 1];
          A[j - 1] := x;
        end;
Тут может быть со знаком напутал и нужно if R>=0 then

Добавлено через 7 минут
А если с нулями, то можно как здесь Сортировка массива: в начале - все отрицательные, затем - нулевые, в конце - все положительные ( с сохранением порядка)
по формулам
Fb = B or (B-1)
R = (not Sa) and Fb =not ( Sa or (not Fb) )
где Sa, Sb - знаковые биты (знаки переменных)
Za, Zb - флаги нулей
0
21.09.2018, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2018, 22:43

Переставить элемента массива, так чтобы сначала было расположены все положительные элементы, потом все отрицательные
Всем добрый вечер! Есть задача: Кто знает как ее решить - помогите, с меня спасибо:)

Преобразовать массив так, чтобы сначала были расположены все отрицательные числа и нули, а потом все положительные
Помогите пожалуста! Нада здать лабу, а зделать не могу! Задание на лабораторную работу 1....

Массив упорядочить так, чтобы сначала шли положительные элементы, в порядке следования, а затем отрицательные
дан одномерный массив упорядочить так, чтобы сначала шли положительные элементы, в порядке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru