![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кака лучше?
Fr © (2012-04-15 13:23:00)Практически везде в предоставляемых кусках кода есть такое:
for i:=0 to SL.Count-1 do ...
Почему вместоSL.Count-1не используетсяPred(SL.Count)?
В чем здесь подвох? Может одна операция действует быстрее другой? Или может возникнуть какая-нибудь проблема при использованииPred(SL.Count)?
Омлет (2012-04-16 16:18:00) [41]
> Юрий Зотов © (16.04.12 16:07) [17]
> либо с выходом за диапазон.
low, high спасают.
Юрий Зотов (2012-04-16 16:07:00) [42]
> CRLF (16.04.12 10:31) [13]
> в прочих случаях объявляем TIndex = IndexMin..IndexMax;
> TArray = array [TIndex] of TElement;
И получаем проблемы либо с несовместимостью типов, либо с выходом за диапазон.
const
IndexMin = ...;
IndexMax = ... ;
type
TIndex = IndexMin..IndexMax;
TArray = array [TIndex] of ...;
var
i: integer;
j: TIndex;
a: TArray;
begin
for i := IndeхMin to IndexMax do
a[i] := ...; // Несовместимость типов
for j := IndeхMin to IndexMax do ...; // Выход за диапазон
end;
Мне тоже нравится строгость Паскаля, она спасает от многих ошибок. Но любую полезную вещь можно превратить в бесполезную (или даже вредную), доведя ее до абсурда.
Anatoly Podgoretsky (2012-04-16 12:05:00) [43]
> Но работает только для конкретного примера в DVM © (15.
> 04.12 18:40) [7]
Работает с любыми перечислимыми типами
CRLF (2012-04-16 11:55:00) [44]
> А в целом все эти функции/процедуры Pred, Succ, Inc, Dec,
> Include, Exclude (может и ещё какие-то были) были "временной
> оптимизацией скорости выполнения" в эпоху Турбо Паскаля
> и может быть в эпоху Д1. Сейчас они никакой оптимизации
> не добавляют. И как правило лишь мешают воспринимать код
> тем, кто начал заниматься программированием после вышеназванной
> эпохи.
Неправда. Inc, Dec, Pred, Succ, Low, High работают с любыми перечислимыми типами. +-1 -- только с арифметическими.
Ega23 (2012-04-16 11:04:00) [45]
> Почему вместо SL.Count-1 не используется Pred(SL.Count)?
С Савёловского вокзала до Белорусского в default city можно добраться:
1. На электричке
2. На такси.
3. Наземный транспорт (трамвай там какой-то ходил, вроде).
Почему большинство предпочитает всё-таки на метро добираться?
CRLF (2012-04-16 10:31:00) [46]
> Но работает только для конкретного примера в DVM
Ну да, в прочих случаях объявляем TIndex = IndexMin..IndexMax; TArray = array [TIndex] of TElement;
Германн (2012-04-16 02:07:00) [47]А в целом все эти функции/процедуры Pred, Succ, Inc, Dec, Include, Exclude (может и ещё какие-то были) были "временной оптимизацией скорости выполнения" в эпоху Турбо Паскаля и может быть в эпоху Д1. Сейчас они никакой оптимизации не добавляют. И как правило лишь мешают воспринимать код тем, кто начал заниматься программированием после вышеназванной эпохи.
Германн (2012-04-16 01:59:00) [48]
> На мой взгляд array [Byte] of ... удобней
Но работает только для конкретного примера в DVM © (15.04.12 18:40) [7]
CRLF (2012-04-15 22:57:00) [49]На мой взгляд array [Byte] of ... удобней, и с обязательным объявлением именованного типа.
Fr (2012-04-15 21:43:00) [50]Спасибо всем. Насколько я понял, принципиальной разницы нет, как делать. все зависит от восприятия пишущего и читающего :)
Sha (2012-04-15 19:43:00) [51]на мой взгляд 255 удобнее
DVM (2012-04-15 18:40:00) [52]
> вторая кака хуже - она заставляет думать
второй вариант более удобен в массивах
a: array[0..Pred(256)] of ...
Наглядно показывает количество элементов в массиве
Sha (2012-04-15 17:56:00) [53]вторая кака хуже - она заставляет думать
Anatoly Podgoretsky (2012-04-15 16:01:00) [54]Скомпилируй обе каки и сравни код.
RWolf (2012-04-15 13:50:00) [55]Пишется проще, читается легче, по скорости одинаково.
Fr (2012-04-15 13:42:00) [56]
> какая такая кака???
Читать не "кака", а "как" :) Не виноват я, что здесь отсутствует система исправления своих сообщений. Поэтому при наборе текста и возникают такие ошибки.
А что по существу вопроса?
Сергей М. (2012-04-15 13:33:00) [57]"Кака" - она в "Практически везде"
brother (2012-04-15 13:24:00) [58]какая такая кака???