![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Hooligan |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Надо элементы, расположенные между min и max переместить в начало массива, с одновременным их удалением. Подскажите пожалуйста, хотя бы алгоритм как их переместить
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Hooligan
Цитата с одновременным их удалением С удалением чего? |
mithquessir |
![]()
Сообщение
#3
|
Гость ![]() |
volvo
Цитата С удалением чего? Наверное, элементов из (min,max). Hooligan Если так, то Код const n = 8; a:array[1..n] of integer = (5,-7,1,2,9,10,4,6); var min,max,min_,max_,i,k,x,m,f:integer; begin min := a[1]; min_ := 1; max := a[1]; max_ := 1; for i := 2 to n do begin if a[i] < min then begin min_ := i; min := a[i]; end; if a[i] > max then begin max_ := i; max := a[i]; end; end; for i := 1 to max_ - min_ -1 do begin x := a[min_+1]; for k := min_+1 to max_-1{min_} do begin a[k] := a[k+1]; end; for f := max_-1 to n do a[f] := a[f+1]; inc(min_); for m := n downto 2 do a[m] := a[m-1]; a[1] := x; end; for i := 1 to n do WriteLn(a[i]:3); end. Не самое рациональное решение, но, вроде, работает. ;) |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
mithquessir
При прогоне для массива (5,-7,1,2,9,10,4,6) программа должна выдавать только 6 значений - (5,1,2,9,4,6). А что она у тебя выдает? |
Hooligan |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
мне самому такая вот мысль неожиданно пришла:
Код if min_index<max_index then while min_index<>max_index-1 do begin m:=a[i]; a[i]:=a[min_index+1]; a[min_index+1]:=m; i:=i+1; min_index:=min_index+1; end else while max_index<>min_index-1 do begin m:=a[i]; a[i]:=a[max_index+1]; a[max_index+1]:=m; i:=i+1; max_index:=max_index+1; end; Сообщение отредактировано: volvo - 8.12.2004 0:42 |
mithquessir |
![]()
Сообщение
#6
|
Гость ![]() |
volvo
Цитата При прогоне для массива (5,-7,1,2,9,10,4,6) программа должна выдавать только 6 значений - (5,1,2,9,4,6). А что она у тебя выдает? Выдает 9,2,1,5,-7,10,4,6. Цитата Надо элементы, расположенные между min и max переместить в начало массива, с одновременным их удалением. Ты не прав, нужно удалять не min,max элементы, а элементы между ними. Сообщение отредактировано: mithquessir - 8.12.2004 14:04 |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
mithquessir
Это тебе кто сказал? Ты сам так решил? Прочти условие: Цитата Надо элементы, расположенные между min и max переместить в начало массива Поэтому, пока автор темы не уточнит задание, его делать бессмысленно. |
Бродяжник |
![]()
Сообщение
#8
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
...свою пару копеек...
Задачу понимаю так: Есть массив (вектор) из N чисел. Среди этих чисел есть а) наименьшее, и б) наибольшее. В общем случае они находятся не рядышком, т.е. между ними есть другие числа. И вот эти-то другие числа надо перенести с того места, где они сейчас, в начало массива, сдвинув начальные элементы на освободившееся место. Пример: Было: 4,3,2,1,0,1,2,3,100,99,98 Стало: 1,2,3,4,3,2,1,0,100,99,98 Тройку чисел 1,2,3 сместили в начало массива. Так? Если так, тогда рассмотрим "подводные камни". Кто скажет, как должна работать программа в следующих случаях: а) 2,2,2,2,2,2,2,2,2 б) 1,2,3,1,2,3,1,2,3 в) 0,0,0,1,2,3,9,9,9 Если кто скажет, как, тогда можно предложить и алгоритм. |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Бродяжник
Ты мой предыдущий пост читал? Ждем автора. Он лучше знает, как звучало условие... :yes: |
![]() ![]() |
![]() |
Текстовая версия | 17.07.2025 18:22 |