Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 05.02.2013
Сообщений: 9
1

Переместить в массиве заданный элемент в указанную позицию

10.04.2015, 11:20. Показов 2080. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив А из N целых чисел. Все его элементы, кроме одного, упорядочены по возрастанию. Переместить значение этого элемента на такую позицию в массиве, чтобы все N элементов оказались упорядоченными по возрастанию. Методы сортировок для всего исходного массива не использовать.


Помогите пожалуйста решить.
Нашел решение, но только если не упорядочен последний элемент.
Сделать массив упорядоченным, переместив последний элемент на новую позицию
А необходимо, чтобы был не упорядочен один любой элемент в массиве.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2015, 11:20
Ответы с готовыми решениями:

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

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

Найти в упорядоченном массиве заданный элемент методом деления массива пополам (бинарный поиск)
найти в упорядоченном массиве заданный элемент методом деления массива пополам(бинарный поиск) ...

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

7
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
10.04.2015, 15:42 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const n=10;
var
  a:array[1..n] of integer;
  i,j,k,l:integer;
begin
  write('Введите массив:');
  for i:=1 to n do read(a[i]);
  j:=-1;
  for i:=1 to n-1 do if (a[i+1]<a[i]) then j:=i+1;
  if j=-1 then for i:=2 to n do if a[i]<a[i-1] then j:=i-1;
  if j=-1 then writeln('Все элементы массива упорядочены по возрастанию') else
  begin
    for i:=1 to n do if a[i]>a[j] then break;
        l:=a[j];
        if i<j then for k:=j downto i+1 do a[k]:=a[k-1]
               else for k:=j to i-1 do a[k]:=a[k+1];
        a[i]:=l;
     for i:=1 to n do write(' ',a[i]);
  end;
  readln;
end.
1
1 / 1 / 0
Регистрация: 05.02.2013
Сообщений: 9
10.04.2015, 19:42  [ТС] 3
Данный код перемещает не упорядоченный элемент на одну позицию.
Но всё равно спасибо.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
11.04.2015, 04:28 4
MeTP, пример приведите
0
1 / 1 / 0
Регистрация: 05.02.2013
Сообщений: 9
11.04.2015, 14:54  [ТС] 5
Цитата Сообщение от Joy Посмотреть сообщение
пример приведите
Ввожу последовательность: 1 2 10 3 4 5 6 7 8 9
Получаю: 1 2 3 10 4 5 6 7 8 9

Переместить в массиве заданный элемент в указанную позицию
0
Joy
11.04.2015, 20:57
  #6

Не по теме:

согласен, как до компа доберусь-исправлю

0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
11.04.2015, 21:58 7
Решение "в лоб" в виде пары проходов слева направо (чтобы утонул большой элемент) и справа налево (чтобы всплыл маленький элемент):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure Swap(var a, b: Integer);
var t: Integer;
begin
  t:=a; a:=b; b:=t;
end;
 
const
  n=10;
var
  a: array[1..n] of Integer;
  i: Integer;
begin
  Write('A: '); for i:=1 to n do Read(a[i]); ReadLn;
  for i:=2 to n do
    if a[i]<a[i-1] then Swap(a[i],a[i-1]);
  for i:=n downto 2 do
    if a[i]<a[i-1] then Swap(a[i],a[i-1]);
  for i:=1 to n do Write(' ',a[i]); WriteLn;
end.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
13.04.2015, 05:45 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const n=10;
var
  a:array[1..n] of integer;
  i,j,k,l:integer;
begin
  write('введите массив:');
  for i:=1 to n do read(a[i]);
  j:=-1;
  if a[1]>a[2] then j:=1 else
  if a[n]<a[n-1] then j:=n  else
    for i:=2 to n-1 do
      if ((a[i]>a[i+1]) and (a[i+1]>=a[i-1])) or
         ((a[i]<a[i-1]) and (a[i+1]>=a[i-1])) then j:=i;
  if j=-1 then writeln('все элементы массива упорядочены по возрастанию') else
  begin
    for i:=1 to n do if a[i]>a[j] then break;
        l:=a[j];
        if i<j then begin for k:=j downto i+1 do a[k]:=a[k-1];a[i]:=l;end
               else begin for k:=j to i-1 do a[k]:=a[k+1];a[i-1]:=l;end;
     for i:=1 to n do write(' ',a[i]);
  end;
  readln;
end.
0
13.04.2015, 05:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2015, 05:45
Помогаю со студенческими работами здесь

Найти заданный элемент в одномерном массиве длинной N и вывести его позицию
Найти заданный элемент в одномерном массиве длинной N и вывести его позицию

Перемещение на указанную позицию. на любой элемент элемент html
Люди подскажите возможно ли а если возможно то как реализовать перемещение на любую позицию в нтмл...

Вставить в указанную пользователем позицию в массиве значение
Дан массив А из n чисел. Вставьте в указанную пользователем позицию массива значение, введённое...

поставить элемент на указанную позицию,файлы,cи
нужно написать программу на си которая ставит некоторую цифру на указнную позицию проблема как...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru