Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, SaZ, Вы писали:
K>>>...
SaZ>>А что, на делфи не принято делать отступы для логических блоков в коде? Невозможно же читать эту простыню. Страшно даже представить, что у вас будет в реальных проектах.
K>Мне кажется, что как у меня — удобнее. Может это какая-то моя специфика. Конечно если устроюсь в контору — придётся переучиваться.
K>Часто бывает удобно, например, поместить блок begin end с несколькими операторами в одну строку, потому что смысл блока понятен и часто эти блоки повторяются (в моём коде выше это есть).
Это никак не противоречит нормальным отступам.
Зато эти отступы позволяют быстро видеть границы "вертикальных" блоков, а не выискивать глазами очередной end среди нагромождения ключевых слов:
procedure tdoublearray.superqsort;
var
q:integer;
sumval, midval, tmpval: double;
tmparray1, tmparray2: tdoublearray;
begin
if count <= 1 then exit;
if count = 2 then begin
if fitems[1] < fitems[0] then begin tmp := fitems[1]; fitems[1] := fitems[0]; fitems[0 ]:= tmp; end;
exit;
end; // вот этот end - он от какого begin? Отступы позволяют сразу это увидеть, не тратя мозг на поиск незакрытых begin вверх по тексту
sumval := 0;
for q := 0 to count do sumval := sumval + fitems[q];
midval := sumval / count;
tmparay1 := tdoublearray.create;
tmparray1.capacity := сount; // почему нельзя сразу передать capacity в конструктор?
tmparray2 := tdoublearray.create;
tmparray2.capacity := count;
for q := 0 to count-1 do if fitems[q] > midval then tmparray2.add(fitems[q]) else tmparray1.add(fitems[q]);
tmparray1.superqsort;
tmparray2.superqsort;
for q := 0 to tmparray1.count - 1 do fitems[q]:=tmparray1.fitems[q];
for q := 0 to tmparray2.count - 1 do fitems[tmparray1.count + q] := tmparray2.fitems[q];
tmparray1.free;
tmparray2.free;
end;