Главная страница
    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.023 c
4-1087040243
Alexis
2004-06-12 15:37
2004.07.25
Ошибка при работе с RegQueryValueEx


1-1089520403
TUser
2004-07-11 08:33
2004.07.25
CreateProcess+AssignFile


1-1089281407
P@vel
2004-07-08 14:10
2004.07.25
Thread


14-1088941116
Knight
2004-07-04 15:38
2004.07.25
NetMeeting


3-1088509574
Pasha
2004-06-29 15:46
2004.07.25
dBase и Exel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский