Top.Mail.Ru
Ответы

Сортировка массива, паскаль

Есть массив такого вида:
12-2
411
12314124
65-4
12.3

Нужно отсортировать его на две группы, в одной все переменные формата число число - число.
Во второй все остальное. Делаю в Лазарусе (паскаль)
Можете поделиться кодом для данной задачи, или хотя бы алгоритм написать)
Совсем нуб в этом деле

По дате
По рейтингу
Аватар пользователя
Мастер
11лет

Массив строковый. Ищите в элементах тирэ и сортируйте

Аватар пользователя
Ученик
11лет

а какому типу присваивать массив?

Аватар пользователя
Просветленный
11лет

http://wiki.freepascal.org/TStringList-TStrings_Tutorial/ru
http://www.freepascal.org/docs-html/rtl/system/val.html
http://www.freepascal.org/docs-html/rtl/system/pos.html

предположим у Вас массив строк A[1...10]
uses
Classes, SysUtils;
var
i,code:integer;
a1,a2:TStringList;
....
begin
a1 := TStringList.Create;
a2 := TStringList.Create;

for i=1 to 10 do
begin
code:=Pos('-', A[i]);
{Вместо Pos можно и Val, если преобразовывать в число и проверять }
{ Val(A[i], i, code); }

if code=0 then
a1.Add(A[i]);
else
a2.Add(A[i]);
end;
....
end.

Соотв. будут разнесены по спискам строк a1 и a2. Правда я не знаю выгодно ли Вам хранить "числа" как строки или нет. Возможно стоит подумать о списке из целых (?) чисел.

P.S: 12.3 - число или строка? =)

Аватар пользователя
Ученик
11лет

спасибо)



Видео по теме