Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Pascal +
 Аватар для UserABC
137 / 136 / 127
Регистрация: 16.03.2011
Сообщений: 461

Отсортировать элементы одномерного массива, которые стоят на четных позициях, по возрастанию

07.05.2011, 19:55. Показов 3473. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача заключается в том что нужно отсортировать элементы одномерного массива, которые стоят на четных позициях по возрастанию и сделать это надо методом простого обмена.
Я написал программу, цикл вставил в процедуру, но дальше не могу додуматься что и как. Подскажите пожалуйста.
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
39
40
41
42
43
44
45
46
program pr_mas;
 uses crt;
 const n=5;
   type omas= array [0..n] of integer;
   var a:omas;
       f:text;
procedure init(var z:omas);
 var i:byte;
  begin
   for i:=1 to n do
   read(f,z[i]);
  end;
procedure print(z:omas);
 var i:byte;
  begin
   for i:=1 to n do
   write(z[i]:3);
   writeln;
  end;
procedure sort(var z:omas);
 var k,j,x,i:integer;
  begin
  for i:=1 to n do
  if i mod 2 = 0 then begin
   for k:=2 to n do
    begin
      x:=a[k];
      j:=k-1;
       while (x>z[j]) and (j>=1) do
        begin
         z[j+1]:=z[j];
         dec(j);
        end;
       z[j+1]:=x;
      end;
    end;
   end;
  begin
  assign(f, 'o:\2.txt');
  reset(f);
   init(a);
   print(a);
   sort(a);
   print(a);
  close(f);
  end.
Элементы при этом из файла берутся, но можно и с клавиатуры, роли не играет. Заранее большое спасибо

Добавлено через 29 минут
может попробовать запоминать позиции?

Добавлено через 56 минут
Вот сделал методом простого обмена сортировку четных элементов, но по какой-то причине не работает. Подскажите пожалуйста почему?

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
program sortirovka;
 uses crt;
 const n=5;
   type omas= array [1..n] of integer;
   var a:omas;
procedure init(var z:omas);
 var i:byte;
  begin
   for i:=1 to n do
   z[i]:=random(10);
  end;
procedure print(z:omas);
 var i:byte;
  begin
   for i:=1 to n do
   write(z[i]:3);
   writeln;
  end;
procedure sort(var z:omas);
 var k,j,x,i:integer;
  begin
   for j:=1 to n do
    for i:=1 to n-j do
     if (z[i+2]<z[i]) and (i mod 2 = 0)then
                   begin
                         x:=z[i];
                         z[i]:=z[i+2];
                         z[i]:=x;
                    end;
    end;
  begin
  randomize;
   init(a);
   print(a);
   sort(a);
   print(a);
  end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2011, 19:55
Ответы с готовыми решениями:

Элементы массива на четных позициях отсортировать по возрастанию, а на нечетных – по убыванию
вот задание: Составить программу для сортировки массива размерностью элементов целого типа по следующему принципу: элементы на...

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

Отсортировать элементы массива от большего к меньшего только те которые стоят на четных местах
Отсортировать элементы массива от большего к меньшего только те которые стоят на четных местах

6
 Аватар для Holy_Metal
72 / 72 / 60
Регистрация: 14.12.2010
Сообщений: 201
07.05.2011, 20:58
Ну у меня получилось как то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
const n=10;
var a:array[1..n] of integer;
    i,c,j:integer;
    
begin
for i:=1 to n do
    begin
         a[i]:=random(100);
         write(a[i]:4);
    end;
writeln;
for i:=1 to n do
    for j:=1 to n do
        if not odd(i) then if a[i]<a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c; end;
for i:=1 to n do
    write(a[i]:4);
end.
И массив заполняется случайными числами. Ну я думаю не составит труда сделать ввод с клавиатуры или из файла.
0
Pascal +
 Аватар для UserABC
137 / 136 / 127
Регистрация: 16.03.2011
Сообщений: 461
07.05.2011, 22:11  [ТС]
В данном случае он просто меняет элементы случайным образом, не соблюдая условие четности, при этом иногда даже не правильно выходит. Почему так?
0
 Аватар для Holy_Metal
72 / 72 / 60
Регистрация: 14.12.2010
Сообщений: 201
07.05.2011, 22:18
Нет, он заполняет случайным образом, а сортирует только четные элементы.

Добавлено через 5 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
const n=10;
var a:array[1..n] of integer;
    i,c,j:integer;
    
begin
for i:=1 to n do
    begin
         a[i]:=random(100);
         write(a[i]:4);
    end;
writeln;
for i:=1 to n do
    for j:=1 to n do
        if (not odd(i)) and (not odd(j)) then if a[i]<a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c; end;
for i:=1 to n do
    write(a[i]:4);
end.
Вот так правильнее наверно
1
Pascal +
 Аватар для UserABC
137 / 136 / 127
Регистрация: 16.03.2011
Сообщений: 461
07.05.2011, 22:20  [ТС]
Ээ.. видно во второй раз не так выразился, мне надо чтобы он не четные элементы сортировал, а те которые стоят на четных позициях.
1 5 4 7 8 (5 и 7)
Это то у меня и никак не получается. Не знаете как сделать так, чтобы на четных позициях сортировал?

Добавлено через 1 минуту
вот.. то что надо =)
а что odd обозначает?
0
 Аватар для Holy_Metal
72 / 72 / 60
Регистрация: 14.12.2010
Сообщений: 201
07.05.2011, 22:23
Выше я выложил программу, которая сортирует элементы, находящиеся на четных позициях, а Odd- это функция, котороя проверяет число на четность.
1
Pascal +
 Аватар для UserABC
137 / 136 / 127
Регистрация: 16.03.2011
Сообщений: 461
07.05.2011, 22:23  [ТС]
Спасибо, Вы мне помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2011, 22:23
Помогаю со студенческими работами здесь

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

Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях, так, чтобы...

Упорядочить элементы одномерного массива расположенных на четных позициях в порядке возрастания методом пузырька
Упорядочить элементы одномерного массива расположенных на четных позициях в порядке возрастания. методом пузырька. с помощью функций.

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

Построить массив В, содержащий элементы массива А, стоящие в четных позициях и отсортировать его
Здравствуйте господа программисты) Очень нужна ваша помощь в написании программы на языке С++, пожалуйста не проходите мимо, и я буду...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru