С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6

Сортировка массива. Задача из курсовой работы.

16.12.2011, 19:26. Показов 2105. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача
Дан массив A[1..50], элементы которого отличны от нуля. Расположить их в таком порядке, чтобы первыми были все положительные элементы, а затем - все отрицательные, причем порядок следования как положительных, так и отрицательных элементов должен сохраниться (при решении задачи новый массив не заводить!).
Пожалуйста, помогите кто-нибудь))) а то пипец!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2011, 19:26
Ответы с готовыми решениями:

Задача к защите курсовой работы по программированию
На 1-м курсе в институте дали задачу к защите курсовой по программированию. Задача такая: В конферент зал по одному заходят люди записывают...

Задача: Сортировка массива!
Помогите, пожалуйста, решить задачу след.содержания: В одномерном числовом массиве (заполняется пользователем) отсортировать элементы,...

Сортировка массива - олимпиадная задача
Помогите, пожалуйста, решить такую задачу: Так как Т.В.С., М.И.М. и Г.Д.М. живут далеко от школы, то каждый день они вот уже много...

16
 Аватар для chealbert
257 / 143 / 85
Регистрация: 13.10.2011
Сообщений: 454
16.12.2011, 20:05
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Program n1;
Const n=50;
Var a:array[1..n] of integer;
    i,x:integer;
    p:boolean;
Begin
 Randomize;
 writeln;
 writeln('Masiv:');
 for i:=1 to n do
  begin
   a[i]:=random(100)-50;
   write(' ',a[i]);
  end;
 repeat
  p:=true;
  for i:=1 to n-1 do
   if (a[i]<0)and(a[i+1]>0) then
    begin
     p:=false;
     x:=a[i];
     a[i]:=a[i+1];
     a[i+1]:=x;
    end;
 until p;
 writeln;
 writeln('Obrabotano:');
 for i:=1 to n do write(' ',a[i]);
End.
1
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6
16.12.2011, 20:36  [ТС]
не запускается почему-то((((
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
16.12.2011, 21:26
Перед последней строчкой вставьте
Pascal
1
Readln;
0
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6
16.12.2011, 21:59  [ТС]
нет, не правильно там)
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
16.12.2011, 22:04
Запустил, у меня работает. Опишите ошибку конкретнее.
0
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6
16.12.2011, 22:12  [ТС]
прога запускается, но она не правильно работает.Нужно чтоб элементы массива сортировались, вначале шли положительные, потом отрицательные)) а здесь запускаешь и он выводит набор каких-то чисел непонятно откуда взявшихся и не отсортированных))
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
16.12.2011, 22:25
изменения в строке 17 и 21
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Program n1;
uses crt;
Const n=50;
Var a:array[1..n] of integer;
    i,x,j:integer;
 
Begin
 Randomize;
 writeln;
 writeln('Masiv:');
 for i:=1 to n do
  begin
   a[i]:=random(100)-50;
   write(' ',a[i]);
  end;
for j:=0 to 50 do
begin
  for i:=1 to n-1 do
   if (a[i]<0)and(a[i+1]>0) then
    begin
     x:=a[i];
     a[i]:=a[i+1];
     a[i+1]:=x;
    end;
end;
 writeln;
 writeln('Obrabotano:');
 for i:=1 to n do write(' ',a[i]);
readkey
End.
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
16.12.2011, 22:27
Сначала выводится сгенерированный случайным образом массив (Masiv: ), затем этот массив сортируется и выводится(Obrabotano: )
0
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6
16.12.2011, 22:35  [ТС]
Цитата Сообщение от Andyc Посмотреть сообщение
Сначала выводится сгенерированный случайным образом массив (Masiv: ), затем этот массив сортируется и выводится(Obrabotano: )
да да) вот как это сделать?

Добавлено через 1 минуту
нет так тоже не правильно))
0
 Аватар для cheznervous
32 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 10
16.12.2011, 22:35
Почитайте пост с кодом программы выше - там это и реализовано.
Сначала заполняется массив рандомными значениями, затем выводится на экран. После чего сортируется и выводится результат.

В сообщении от "КонецСвета" окончательная работающая программа. Ввод значений, если не нравится заполнение рандомными, можно сделать вручную.
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
16.12.2011, 22:36
Алексей)), см. выше!
Миниатюры
Сортировка массива. Задача из курсовой работы.  
0
 Аватар для cheznervous
32 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 10
16.12.2011, 22:37
Цитата Сообщение от Алексей)) Посмотреть сообщение

Добавлено через 1 минуту
нет так тоже не правильно))
Что конкретно не так? Сортировка проходит по заданному Вами условию - сначала положительные элементы, за ними - отрицательные.
0
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 6
16.12.2011, 23:02  [ТС]
Все работает! просто пробел не надо было ставить)) Большое спасибо всем! Особенно "Конец Света"))
0
30 / 29 / 15
Регистрация: 28.09.2011
Сообщений: 449
17.12.2011, 14:18
ну массив создать думаю, сможешь, а отсортировать можно так:
Pascal
1
2
3
4
5
6
7
8
9
g:=26; j:=1;
for i:=1 to 50 do begin
if a[i]<0 then a[i]:=a[j];
inc(j);
end;
for i:=1 to 50 do begin
if a[i]<0 then a[i]:=a[g];
inc(g);
end;
то есть, если элемент больше нуля, ставим его на первое место, так как j сначала=1, и увеличиваем j на 1 для следующего элемента, такой же цикл и с теми, что больше нуля, только первый элемент ставим на 26 место!
0
 Аватар для BouH
54 / 54 / 43
Регистрация: 11.12.2009
Сообщений: 110
17.12.2011, 21:27
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
uses crt;
const n=50;
var i,j,tmp:integer;
    a:array[1..n]of integer;
begin
clrscr;
randomize;
i:=1;
repeat
tmp:=random(20)-10;
if tmp<>0 then begin
a[i]:=tmp; inc(i); end;
until i=n+1;
 
 
for i:=1 to n do
write(a[i]:3);
writeln;
writeln;
 
for i:=1 to n do
    begin
    for j:=1 to n do
        begin
        if a[i]>0 then
           begin
           if a[j]<0 then
              begin
              tmp:=a[i];a[i]:=a[j];a[j]:=tmp;
              end;
           end;
        end;
    end;
 
for i:=1 to n do
write(a[i]:3);
readln;
end.
Добавлено через 4 часа 54 минуты
Заметил ошибку у себя, положительные по порядку, а вот отрицательные не по порядку выводятся
0
 Аватар для chealbert
257 / 143 / 85
Регистрация: 13.10.2011
Сообщений: 454
19.12.2011, 10:56
Можете написать перед разделом const: Uses crt; а в начале программы строку: clrscr; - циферок и буковок поменьше будет сначала неотсортированый масив, а затем отсортированый по условию. Посмотреть результат: Alt+F5
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2011, 10:56
Помогаю со студенческими работами здесь

Задача: сортировка массива с рандомными числами
Надо отсортировать массив с рандомными числами по методу &quot;Пузырька&quot;. int func() { int a; int i; int j; int r; for(i=0;...

Выбор курсовой работы
Помогите пожалуйста с выбором курсовой работы! Какую можно взять легкую тему с алгебры или дискретной математики, или теории...

Для курсовой работы,пж
Дан вектор n величины.Найти количество тех элементов,которые содержат нули друг за другом и самые длинные.

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

Оформление курсовой работы
Здравствуйте! Вот и наступил тот день, когда преподаватель объявил нам о необходимости написания курсовой работы по Делфи. Сразу скажу...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru