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

Вниз

Как в цикле уменьнить на еденицу переменную цикла   Найти похожие ветки 

 
AZIZE ©   (2007-07-11 19:16) [0]

Как в цикле уменьнить на еденицу переменную цикла


 
TUser ©   (2007-07-11 19:18) [1]

while
repeat
си

на Паскале в цикле for нельзя


 
Anatoly Podgoretsky ©   (2007-07-11 19:18) [2]

Это делать нельзя, да и Дельфи не позволит.


 
Desdechado ©   (2007-07-11 19:19) [3]

> Anatoly Podgoretsky ©   (11.07.07 19:18) [2]
Чего это вдруг?
for i:=10 downto 0 do
Типичное уменьшение на единицу на каждой итерации.


 
Anatoly Podgoretsky ©   (2007-07-11 19:45) [4]

Он вообще то говорит об ручном изменение переменной цикла.


 
Virgo_Style ©   (2007-07-11 19:57) [5]

а мой телепатор считает, что ему continue подойдет


 
Virgo_Style ©   (2007-07-11 19:59) [6]

Virgo_Style ©   (11.07.07 19:57) [5]

Э, нет. Прошу пардону, подошел бы, если бы надо было перейти на следующую итерацию, если на предыдущую - то нет... Но если цикл с downto, то [5] в силе. В чем я уже весьма сомневаюсь.


 
vpbar ©   (2007-07-11 20:13) [7]

Вообще менять пременную цикла (for - этот ведь цикл имелся ввиду?) нельзя, да и Делфи этого не позволяет. Но если очень хочется то можно. Вот код:

var i:integer;
  p:PINT;
begin
  memo1.Clear;
  for i:=1  to 10 do begin
   p:=@i;
   if i=5 then inc(p^);
   memo1.Lines.Add(inttostr(i));
  end;
end;


 
vpbar ©   (2007-07-11 20:15) [8]

Да. там увеличение inc(p^) а не уменьшение dec(p^), ибо в  этом случае цикл получился бы бесконечный. Поэтому, из-за большой вероятности таких ошибок делать так не рекомендую


 
{RASkov} ©   (2007-07-11 20:31) [9]

[7],[8] все это безобидно решается [5] :)


 
{RASkov} ©   (2007-07-11 20:38) [10]

N:=0;
while N<10 do begin
.....
 if not Verify(N) then DEC(N) else INC(N);
end;


Но отсюда можно и не вылезти...) Хотя можно и так решить:

N:=0;
NStop:=0;
while N<10 do begin
.....
 if not Verify(N) then DEC(N) else INC(N);
 INC(NStop);
 if NStop>=1000 then raise Except.Create("Не могу выйти, закружилась");
end;


 
Anatoly Podgoretsky ©   (2007-07-11 20:54) [11]

> vpbar  (11.07.2007 20:13:07)  [7]

Это не наш метод, а хакерский и чреватый.


 
vpbar ©   (2007-07-11 21:04) [12]

да это наш хакерский метод, потому и не рекомендую



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

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

Наверх




Память: 0.46 MB
Время: 0.053 c
9-1156912564
NewLamer
2006-08-30 08:36
2007.08.12
Помогите с канвасом


1-1181045623
Kolan
2007-06-05 16:13
2007.08.12
Какие могут быть причины не попасть в код потока после Resume?


2-1184793633
Repavel
2007-07-19 01:20
2007.08.12
FormatFloat


2-1184610269
Knob
2007-07-16 22:24
2007.08.12
Как добавить в список


11-1150264932
MZUser
2006-06-14 10:02
2007.08.12
Создание DLL





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