Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

почему нет 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.035 c
14-1088740087
Ozone
2004-07-02 07:48
2004.07.25
Красивый и функциональный DBGrid


3-1088626619
3APA3A
2004-07-01 00:16
2004.07.25
Как узнать VARCHAR длину


14-1088878822
_none_
2004-07-03 22:20
2004.07.25
gprs через билайн


3-1088518909
}|{yk
2004-06-29 18:21
2004.07.25
MySQL и прокси


3-1088763959
Семен Сорокин
2004-07-02 14:25
2004.07.25
Прилинкованый сервер Visual FoxPro к MSSQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский