Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2012, 22:09   #1
lerenia
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 13
По умолчанию вставить число в массив не нарушая порядок построения по неубыванию

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

Нужно сделать через одномерный массив. и ещё объяснить как можно их отсортировать, а точнее каким методом (пузырьком, сортировка выбора, сортировка вставкой)
lerenia вне форума Ответить с цитированием
Старый 20.10.2012, 01:03   #2
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Icq: 639544131
Mail: politkarta@mail.ru
Помогу.
rlib вне форума Ответить с цитированием
Старый 20.10.2012, 11:30   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

язык какой?
тут на С++
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.10.2012, 12:18   #4
lerenia
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
язык какой?
тут на С++
язык - паскаль
lerenia вне форума Ответить с цитированием
Старый 20.10.2012, 16:36   #5
lerenia
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 13
По умолчанию

у меня их отсортировать не получается(
lerenia вне форума Ответить с цитированием
Старый 20.10.2012, 16:57   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Покажи как сортируешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2012, 17:37   #7
lerenia
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 13
По умолчанию

Код:
const n=20;
type vect=array [1..n] of integer;
var x:vect; i,j,t,min:integer;
begin
 write ('vvod elementov massiva');
for i:=1 to n do
read (x[i]);
for i:=1 to n-1 do
begin 
 min:=i;
for j:=i+1 to n do
if x[j] < a[min] then min:=j;
t:=x[min];
x[min]:=x[i];
x[i]:=t;
end;
writeln ('sort. elementov massiva');
for i:=1 to n do
write (x[i], ' ');
end.

Последний раз редактировалось Stilet; 20.10.2012 в 18:13.
lerenia вне форума Ответить с цитированием
Старый 20.10.2012, 18:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
const n=20;
type vect=array [1..n] of integer;
var x:vect; i,j,t,min:integer;
begin
 write ('vvod elementov massiva');
for i:=1 to n do read (x[i]);

for i:=1 to n-1 do begin 
 min:=i;
 for j:=i+1 to n do 
   if x[j] < a[min] then begin
    min:=j;
    t:=x[min];
    x[min]:=x[i];
    x[i]:=t;
   end;
end;

writeln ('sort. elementov massiva');
for i:=1 to n do
write (x[i], ' ');
end.
Читай внимательнее про сортировку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2012, 18:25   #9
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Сначала нужно объявить массив "с запасом", чтобы было место для хранения вставленного элемента.
Код:
type vect=array [1..n+1] of integer;
Потом ищем место в отсортированном массиве, куда необходимо будет вставит элемент
Код:
inumber:=1; //позиция вставляемого элемента, ElForInsert - элемент для вставки
    while x[inumber] < ElForInsert do inc(inumber);
Ну и вставляем элемент(для этого смещаем все необходимые элементы)
Код:
for i := n+1 downto inumber do
      x[i]:=x[i-1];
    x[inumber]:=ElForInsert;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 20.10.2012, 19:16   #10
lerenia
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 13
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Сначала нужно объявить массив "с запасом", чтобы было место для хранения вставленного элемента.
Код:
type vect=array [1..n+1] of integer;
Потом ищем место в отсортированном массиве, куда необходимо будет вставит элемент
Код:
inumber:=1; //позиция вставляемого элемента, ElForInsert - элемент для вставки
    while x[inumber] < ElForInsert do inc(inumber);
Ну и вставляем элемент(для этого смещаем все необходимые элементы)
Код:
for i := n+1 downto inumber do
      x[i]:=x[i-1];
    x[inumber]:=ElForInsert;
Как у Вас все просто получилось! а я мучилась весь день! Спасибо огромное! это я понимаю предпоследних 2 кода решение уже всей задачи?
lerenia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить массив a1,a2,…,an по неубыванию mash0 Паскаль, Turbo Pascal, PascalABC.NET 1 14.05.2012 05:01
Вставить число в массив Julia13 Помощь студентам 3 08.01.2012 16:51
Вставить число после всех элементов массива, кратных 3 Mclaren Помощь студентам 0 10.11.2009 02:40
Массив чисел надо упорядочить по неубыванию по строкам и столбцам. alecsande426 Помощь студентам 0 07.11.2009 19:36
Как вставить число в строку? nec117 Общие вопросы C/C++ 2 18.10.2008 00:41