Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизПовторить какуюнибудь процедуру или функцию несколько раз Найти похожие ветки
← →
Дмитрий_177 (2006-02-03 17:54) [0]Как лучше всего повторить какуюнибудь процедуру или функцию несколько раз? Я делаю так, если нужно повторить например 10 раз:
var
i: Byte;
for i := 0 to 9 do
func
Но вопрос в том, что удачное так использования цикла, если в нем нигде не используется i? или можно еще какнибудь без цикла выполнить процедуру несколько раз?
← →
Гошик Кувшинов (2006-02-03 18:04) [1]нормальное использование. в паскале нет циклов с заданным количеством повторений и без переменных, какие были например в рапире, так что всё в порядке
только переменную лучше объяви не как байт а как интергер или кардинал - 32-разрядные процессоры с ними быстрее работают, а экономия памяти копеечная
← →
Дмитрий_177 (2006-02-03 18:11) [2]Спасибо... я не знал про Byte с Integer...
← →
vrem (2006-02-03 18:19) [3]Если на десятом разе функция выдаёт что то определённое, то можно и без переменной цикла. через while
рапира..) наука и жизнь и рассуждения что рапира лучше, Кувшинов, а как Вы к моржеванию относитесь? ;)
← →
Zeqfreed © (2006-02-03 18:19) [4]Скорее всего место в стеке под счетчик цикла не будет выделяться, будет использован один из регистров процессора. Так что не стоит экономить на счетчиках цикла :)
← →
Gero © (2006-02-03 18:22) [5]Неужели 4 байта это критично?
← →
Гошик Кувшинов (2006-02-03 18:57) [6]verm
я не говорил, что рапира лучше, я и не программировал на ней, просто в школе был один обзорный урок, я кое-что запомнил. но операторы русскими буквами - ужас
а моржевание тут причём? не понял... я только когда тепло купаюсь
← →
vrem (2006-02-03 19:02) [7]Кувшинов
Товарищ один пропал.. думал ну - а нет.)
← →
TUser © (2006-02-03 19:45) [8]
> только переменную лучше объяви не как байт а как интергер
> или кардинал - 32-разрядные процессоры с ними быстрее работают,
> а экономия памяти копеечная
Зато при переходе на integer мы получим немеренное ускорение, аж на 10 итерациях цикла.
← →
Anatoly Podgoretsky © (2006-02-03 20:44) [9]TUser © (03.02.06 19:45) [8]
Я не уверен, что при использовании байте не будет внутреннего преобразования в Integer.
Кроме того почему цикл от 0 до 9, а не от 2 до 10, что бы в голове делать прибавление единички.
Писать надо сразу правильно, чтобы в будущем не было мучительно стыдно за бездумно потраченые годы.
Теперь по поводу экономии трех байт, если переменная I локальная, то это не экономия, а потери.
← →
TUser © (2006-02-03 21:55) [10]> Anatoly Podgoretsky © (03.02.06 20:44) [9]
Я говорил неоднократно - на наких тараканах экономить память или увеличивать скорость - бессмысленно. Вы сами говорили, что скорость программы надо мерить будильником. Действительно - если программа работает за 0.00001 секунды, то не надо ускорять. А если за десять минут, то ускорение на 0.00001% ничего не изменит.
← →
vidiv © (2006-02-03 22:03) [11]
> TUser © (03.02.06 21:55) [10]
Это они так... для просвещения :)
← →
Германн © (2006-02-04 01:38) [12]
> Но вопрос в том, что удачное так использования цикла, если
> в нем нигде не используется i?
Уже много сказано про i, но добавлю ещё капельку. Переменную цикла можно всеми и всегда использовать справа от оператора присваивания. Но вот использование её слева - недопустимо!
← →
Loginov Dmitry © (2006-02-04 09:21) [13]Вообще не вижу смысла использовать тип Byte вместо Integer для счетчика цикла (хоть локально, хоть глобально). Одно время были такие причуды - после прочтения книжки по ассемблеру старался экономить на каждом байте :)
Однако на практике приходилось потом переобъявлять переменные, как Integer.
P.S. Экономьте только там, где экономия реально нужна.
← →
YurikGL © (2006-02-04 09:53) [14]
> var
> i: Byte;
>
> for i := 0 to 9 do
> func
ИМХО лучшеvar
i: integer;
for i := 1 to 10 do
func
← →
Anatoly Podgoretsky © (2006-02-04 13:06) [15]vidiv © (03.02.06 22:03) [11]
Это не мне дали 15 суток, а нам, чтобы ты мог проводить воспитательную работу.
(С) Операция Ы
← →
Дмитрий_177 (2006-02-04 13:41) [16]А вот по поводу цикла... что лучше от 0 до 9 или от 1 до 10... Мне почему-то казалось что лучше от 0 до 9...)))
← →
sniknik © (2006-02-04 13:49) [17]> Мне почему-то казалось что лучше от 0 до 9...)))
ну если разговор об экономии (ресурсы/время) то лучше с 9 downto 0, но на это оптимизатор и сам исправит.
← →
Дмитрий_177 (2006-02-04 14:04) [18]а в чем разница? 0->9 и 9->0? :)
← →
sniknik © (2006-02-04 14:15) [19]в выходе из цикла, проверка на 0 после операции гораздо "легче" чем сравнение переменной с конкретным числом. а так как такая проверка идет в каждой итерации цикла... есть небольшой выигрыш во времени.
(впрочем может для нынешних процессоров нет разницы на операторы (не в курсе)... но раньше точно была и оптимизатор "настроен" на тоже, то что есть.)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.039 c