Дан одномерный массив, каждый элемент которого является строкой, состоящий из одних цифр. Упорядочить массив в порядке убывания их числовых значений. После стандартного упорядочивания массива получается, например, такое: 567, 45, 345, 1111, т.е. массив упорядочивается как строковые данные, а не как числовые. Что можно сделать?
Чтобы массив упорядочивался как числовые данные, нужно: 1) или массив сделать числовым 2) или при сравнении элементов массива делать так:
Function ConvToInt(s: String): Integer; Var V, Err: Integer; begin Val(S, V, Err); ConvToInt := V; { Возвращаем число, хранящееся в строке } end;
{ Кусок сортировки пузырьком } If ConvToInt(ar[Pred(j)]) > ConvToInt(ar[j]) Then { Сравниваешь числовые значения } Begin T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T { А перемещаешь - строковые } End
To мисс_граффити: Если уж Вы, уважаемая, отвечаете, то я попрошу НЕ отвесать одним словом, а хотя бы дать идею программы. Это понятно? Вам самой такой ответ бы понравился?
klem4, тебя это тоже касается! Ты хорошо подумал? Вот попробуй БЕЗ написания своей функции сделать то же, что сделал я, НЕ усложняя программу...
"Никогда не опережай действием мысль!" (С) "Диверсант"...
natka
19.02.2006 18:01
Спасибо большое, все понятно ;-)
мисс_граффити
19.02.2006 18:13
Цитата(volvo @ 19.02.2006 13:59)
To мисс_граффити: Если уж Вы, уважаемая, отвечаете, то я попрошу НЕ отвесать одним словом, а хотя бы дать идею программы. Это понятно? Вам самой такой ответ бы понравился?
я обычно задаю конкретные вопросы, на которые односложного ответа вполне хватает.
идею программы? стандартная сортировка, примеров которой море. если воспользоваться поиском...
klem4
19.02.2006 18:31
Цитата
Вот попробуй БЕЗ написания своей функции сделать то же, что сделал я, НЕ усложняя программу...
val(s[i], _pred, e); val(s[succ(i)], _succ, e); if _pred > _succ then // {меняем местами arr[i], arr[succ(i)]}
?
no online order prescription via
6.11.2021 7:34
Propecia Side Effects Custom
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.