Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив сортировка массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lety
Господа! помогите решить 2 задачки..


1.Дан массив X(n) найти элемент массива наиболее близкий к наименьшему элементу?

2.Дан массив X(n) получить новый массив выбросив из исходного все элементы с наименьшим значением.
trminator
Найболее близкий к найменьшему - такой, который отличается от найменьшего на минимальное число (если нарисовать это на прямой, то тот, который ближе всех к нему)
Код

{Пусть найменьший - это min, minn - его номер в массиве }
min2 := high(integer); {очень большое число -- на минимум явно не тянет}
for i := 1 to n do
   if i <> minn {минимальный не нужен}
      and abs(a[i] - min) < min2 then min2 := a[i]


Во втором после нахождения минимума снова проходим по исходному массиву, заталкивая во второй элементы, которые не равны минимальному
Незнайка
Переформировать массив таким образом, чтобы его строки располагались по возрастанию их перервых элементов.
Пример:
2 6 3 1 3 5
4 5 2 -> 2 6 3
1 3 5 4 5 2

Напишите пожалуйста процидуоу сортировки. smile.gif
Lik
может наименьших элементов ?
Незнайка
Массив двумерный huh.gif
APAL
Может так?
Код

Const
 Vmax = ..;
 Hmax = ..;

Type
 tip = Array [1..Vmax,1..Hmax] of Integer;

Var
 m : tip;

Procedure Sorting;
Var
 i,j,k : Word;
 tt : Array [1..Hmax] of Integer;
Begin
 For i:=1 to Vmax-1 do
   For j:=i+1 to Vmax do
     If m[j,1]>m[i,1] then
     Begin
       For k:=1 to Hmax do tt[k]:=m[j,k];
       For k:=1 to Hmax do m[j,k]:=m[i,k];
       For k:=1 to Hmax do m[i,k]:=tt[k];
     End;
End;

Begin
 {....}
 Sorting;
 {....}
End.


Прогу не проверял - написал прямо в окне.
Sir
Советую посмотреть в FAQ Vit'а по Delphi
Там описано множество алгоритмов сортировки
Незнайка
APAL не действует просто строчку последнию удоляет huh.gif
Atos
Странно... Ну, если сортируем по возрастанию, то вместо > должно стоять <. Но удалять что-то процедура никоим образом не может!
APAL
Цитата(Atos @ 29.03.04 9:06)
Странно... Ну, если сортируем по возрастанию, то вместо > должно стоять <.

Так все правильно - находим больший элемент и ставим его в начало...
Atos
Да нет - по возрастанию это начиная с самых маленьких и заканчивая большими
См. пример массива, данный Незнайкой в самом начале
APAL
А, ну точно. Тогда заменить надо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.