Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

почему нет STEP в цикле FOR???   Найти похожие ветки 

 
cvg   (2004-07-09 11:24) [0]

Еще вопрос от чайника: на строчку

for i := 12 to 120 step 8 do

компилятор говорит:

"DO" expected but indentifier "step" found

А как же тогда задать шаг инекремента i?


 
VMcL ©   (2004-07-09 11:25) [1]

while, repeat


 
cvg   (2004-07-09 11:30) [2]

Ж:((((
Ну, может хоть так можно:

for i := 12 to 120 do
begin
 i := i + 7:
 //body
end;


 
Reindeer Moss Eater ©   (2004-07-09 11:32) [3]

почему нет STEP в цикле FOR???
Потому что не реализовали.

Ну, может хоть так можно:
нельзя


 
ORMADA ©   (2004-07-09 11:33) [4]

while i<120 do
begin
//body
i:=i+12;
end;


 
ORMADA ©   (2004-07-09 11:34) [5]

repeat
//body
i:=i+12;
until i<120


 
cvg   (2004-07-09 11:36) [6]

Да, вижу уже, что то, что я предложил, не прокатывает... мля... По-моему, у Йенсена и Вирта такая фича была?..


 
Anatoly Podgoretsky ©   (2004-07-09 11:40) [7]

Потому что данным языком это не предусмотрено, цикл с шагом по сути цикл while (особый вид записи). Вирт не стал нарушать концепцию языка.


 
Думкин ©   (2004-07-09 11:48) [8]

> [6] cvg   (09.07.04 11:36)

Я тебе уже в одной ветке дал совет, почему не следуешь?


 
REA ©   (2004-07-09 13:31) [9]

А в Си можно:
for (i=x=2;(i!=x++)||(--x);x+=(i--))
результат очевиден?


 
Ega23 ©   (2004-07-09 13:33) [10]

А зачем?


 
Anatoly Podgoretsky ©   (2004-07-09 13:34) [11]

REA ©   (09.07.04 13:31) [9]
А в Си нет чистого цикла FOR там по сути while


 
cvg   (2004-07-09 13:47) [12]

Почему не следую? Потому что в Клиппере по жизни был STEP. И в в Перле есть for($i=2;$i<5;++$i) (сердечное спасибо корпорации Nuntacket и лично Ларри Уоллу).


 
Amoeba ©   (2004-07-09 13:50) [13]


> cvg   (09.07.04 13:47) [12]

Еще Васик вспомни.


 
TUser ©   (2004-07-09 14:00) [14]

А ты запусти программу
if "Pascal" = "Basic" then
  showMessage("Вы можете использовать STEP в операторе FOR")
  else
  showMessage("Увы, использование STEP в операторе FOR недопустимо");

:)


 
DimKa ©   (2004-07-09 14:43) [15]

А можно так :

 for j := 1 to 10 do begin
   i := j * 12;
   {операторы, работающие с i}
 end;


 
evvcom ©   (2004-07-09 15:13) [16]

Лучше использовать [1] + поправлю [4]: i:=i+12; красивее и оптимальнее написать Inc(i, 12);


 
Ega23 ©   (2004-07-09 15:16) [17]

красивее и оптимальнее написать Inc(i, 12);

Уверен? Красивее - может быть, а вот с оптимальностью - вопрос спорный.


 
nejest   (2004-07-09 15:17) [18]

2 DimKa
Можно, но While будет короче


 
Anatoly Podgoretsky ©   (2004-07-09 15:18) [19]

Как раз насчет красоты спорно, а насчет оптимальности без разницы, будет сгенерирован одинаковый код.


 
Ega23 ©   (2004-07-09 15:20) [20]

Anatoly Podgoretsky ©   (09.07.04 15:18) [19]

Я пытался найти описание Inc, но меня "обматерили", сказав
Unit SysIni was compiled with a different version of System. @RunError


 
Anatoly Podgoretsky ©   (2004-07-09 15:23) [21]

Это не проблема, пользуйся каноническими именами.


 
TUser ©   (2004-07-09 18:17) [22]


> Я пытался найти описание Inc, но меня "обматерили",

А зачем тебе это описание? Впрочем, его можно найти в хелпе, а исходников ф-ции тебе Борланд все равно не даст.


 
VMcL ©   (2004-07-09 18:53) [23]

По поводу Inc().

AFAIR, при выключенной оптимизации Inc(X) генерит более оптимальный код, чем X:=X+1, а при включенной по-моему одинаковый - оптимальный. Можно в CPU Window проверить.


 
VMcL ©   (2004-07-09 18:55) [24]

>>Ega23 ©   (09.07.04 15:20) [20]
>>TUser ©   (09.07.04 18:17) [22]

Фактически функции Inc() в скомпилированном коде нет. Будет просто что-нибудь вроде:
inc dword ptr [eax+123]
или
inc edx


 
Тимохов ©   (2004-07-09 19:05) [25]

если не ошибаюсь inc - это compiler magic, а не просто процедура.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.023 c
1-1089176228
pupus
2004-07-07 08:57
2004.07.25
Лаба по искусственному интеллекту


1-1089757628
Lego
2004-07-14 02:27
2004.07.25
ListBox


14-1088668148
Красная Майка
2004-07-01 11:49
2004.07.25
Неофициальное MMP завтра для всех желающих!!!


6-1085656369
Sunny Way
2004-05-27 15:12
2004.07.25
Ограничение количества клиентов у TServerSocket


1-1089557666
hammster
2004-07-11 18:54
2004.07.25
Байты из файла