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

Вниз

Цикл For To Do   Найти похожие ветки 

 
ZV ©   (2010-09-14 10:05) [0]

Меня интересует вопрос по циклу for  to do;
А что в этом цикле нельзя задать шаг приращения ? Увеличение возможно только на один? И можно ли в нем добавить дополнительное условие  сравнение?
Во основном я работаю на Си там это можно делать


 
Andy BitOff ©   (2010-09-14 10:10) [1]

Дык, для начала неплохо было бы почитать книжки по синтаксису изучаемого языка.


 
бумбум   (2010-09-14 10:12) [2]

Есть
While <Условие> do <цикл>
Repeat <цикл> until <Условие>

мути как хочешь


 
Anatoly Podgoretsky ©   (2010-09-14 10:14) [3]

> ZV  (14.09.2010 10:05:00)  [0]

В Си нет цикла For, то что там есть это по сути цикл While. Исходя из этого
факта, ты тоже можешь использовать цикл WHILE


 
12 ©   (2010-09-14 10:37) [4]

сейчас побьют, но можно и так примерно сделать :)

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 11 do
begin
  asm
    inc i
  end;
  ShowMessage(inttostr(i));
end;
end;


 
ZV ©   (2010-09-14 10:44) [5]

Понятно. Буду делать на while


 
oldman ©   (2010-09-14 12:17) [6]


> 12 ©   (14.09.10 10:37) [4]
> сейчас побьют, но можно и так примерно сделать :)


нельзя так делать!


 
Игорь Шевченко ©   (2010-09-14 12:57) [7]

12 ©   (14.09.10 10:37) [4]


> сейчас побьют


побьют


 
Anatoly Podgoretsky ©   (2010-09-14 12:59) [8]

Гроссмейстер подумал, сейчас будут бить.
(с) Ильф и Петров.


 
И. Павел ©   (2010-09-14 13:10) [9]

> [4] 12 ©   (14.09.10 10:37)

А вдруг Delphi код соптимизирует, и сделает downto. Если он на "inc i" не ругается, то и это, ИМХО, может.


 
И. Павел ©   (2010-09-14 13:13) [10]

> [9] И. Павел ©

Хотя оптимизирует он только если i в теле цикла не используется. А тогда и нет смысла выставлять шаг...


 
И. Павел ©   (2010-09-14 13:22) [11]

Хотя такое, мне кажется, запросто соптимизирует и перевернет цикл (хотя я и не разу не замечал, чтобы у меня компилятор так поступал), так что лучше не рисковать:
for i := 1 to 10 do
begin
 asm
   inc i
 end;
 sum := sum + a[i];
end;


 
12 ©   (2010-09-14 13:23) [12]

да все понятно, никогда так не делаю
это не понятно, по меньшей мере
просто, что б на D не наезжали :)


 
И. Павел ©   (2010-09-14 13:26) [13]

А действительно: почему нельзя менять i в цикле? Какое от этого преимущество при выполнении программы? Она же все равно JUNP должна делать, а перед этим - какое-то условие проверить? Не всегда же можно сразу развернуть цикл в последовательный код, да и не всегда это правильно, т.к. увеличится размер программы.

PS: [10] и [11] - ерунда. Я запутался, извиняюсь. Жаль, нельзя удалять посты самостоятельно...


 
Anatoly Podgoretsky ©   (2010-09-14 13:30) [14]

> И. Павел  (14.09.2010 13:22:11)  [11]

Под страхом смерти запрещается изменять вручную управляющую переменную.


 
Anatoly Podgoretsky ©   (2010-09-14 13:32) [15]

> И. Павел  (14.09.2010 13:26:13)  [13]

Почитай описание конструкции цикла, да и часто ни какой переменной I нет. Да
и вообще почитай, что такой цикл FOR


 
12 ©   (2010-09-14 13:36) [16]


> Она же все равно JUNP должна делать, а перед этим - какое-
> то условие проверить?

обычно сx=0
LOOPNZ - повторять пока cx не 0. потому и downto компилятор часто делает, имхо так


 
бумбум   (2010-09-14 13:44) [17]

Когда я был маленьким мне очень было нужно при определенных условиях вернуть переменной i значение 0, но я нашел обходной вариант с whal’ом. Хотя мне и сейчас кажется было бы проще присвоить переменной i 0 и пустить один и тот же цикл заново


 
Игорь Шевченко ©   (2010-09-14 14:10) [18]


> потому и downto компилятор часто делает, имхо так


зачем имхо, открой view|debug windows|cpu
увидишь, что компилятор так не делает



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

Форум: "Начинающим";
Текущий архив: 2010.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
6-1210699123
San1712
2008-05-13 21:18
2010.12.05
Какие есть функции в Windows Xp для управления раб столом ?


15-1282854584
Юрий
2010-08-27 00:29
2010.12.05
С днем рождения ! 27 августа 2010 пятница


15-1282879219
Дмитрий С
2010-08-27 07:20
2010.12.05
Оплата через assist или подобное.


2-1284236747
Andrey K
2010-09-12 00:25
2010.12.05
Караул. Помогите разобраться с TMainMenu.


10-1171452145
vs_on
2007-02-14 14:22
2010.12.05
Автофильтр в Excel





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