![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Dima_SLV |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Dima Репутация: ![]() ![]() ![]() |
Добрый день!Помогите плиз надо сделать прогу на паскале.
Метод СОРТИРОВКА ВСТАВКАМИ.Дана возраст. посл-ть a1<a2<..<an.Берем новое число an+1 и помещаем его в исход. посл-ть так,чтоб новая посл. тоже была возраст-ей. Место помещения очередного элемента в отсортир-ую часть производить с помощью двоич. поиска!двоичный поиск оформить в виде отдельной функции!
var i,x,j, count: integer; size, left, right, center: integer; a:
array[1 .. 100]
of integer;
begin
write('vvedite size'); readln(size); writeln('vvedite elementi');
for i:=1
to size
do readln(a[i]); writeln ('vvedite X'); readln (x);
if x>a[size]
then a[size+1]:=x;
if x<a[1]
then
begin
for j:=size
downto 1
do a[j+1]:=a[j]; a[1]:=x;
end
else
begin left := 1; right := size;
repeat center := (right + left)
div 2; inc(count);
if a[ center ] >= X
then right := center
else left := center;
until (right - left = 1)
or (a[ center ] = X);
for i := size + 1
downto center
do a[i] := a[i - 1]; a[ center ] := X;
end; writeln('count = ', count);
for i:=1
to size+1
do
write (' ',a[i]); writeln; readln;
end.
пример volvo - для случая, когда массив упорядочен по неубыванию... Мне этот пример подходит только надо двоичный поиск реализовать в виде отдельной функции,я понимаю что это не сложно, но всеравно неполучается!помогите плиз! |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
ты путаешь массив и диапазон.
диапазон - это вот так: 1..5, 9..17 возвращать массив вполне можно. и передавать тоже... как это сделать ты можешь прочитать в FAQ хотя в моем понимании двоичный поиск должен возвращать номер позиции, на которую надо вставить элемент. Сообщение отредактировано: мисс_граффити - 29.11.2006 20:54 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Dima_SLV |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Dima Репутация: ![]() ![]() ![]() |
ты путаешь массив и диапазон. диапазон - это вот так: 1..5, 9..17 возвращать массив вполне можно. и передавать тоже... как это сделать ты можешь прочитать в FAQ хотя в моем понимании двоичный поиск должен возвращать номер позиции, на которую надо вставить элемент. Но чтобы функция возвратила номер позиции,надо передать в нее исходный массив!Как передавать массив я знаю!Массив взять открытый или явно указать его размерность? Я на словах понимаю как сделать,а на практике уже бьюсь целый день!А завтра после обеда надо уже показывать готовое задание! |
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 18:31 |