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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
6-1163590640
wezzz
2006-11-15 14:37
2007.08.12
Подскажите компонент для отправки через SMTP с аутентификацией


2-1183583554
Infloop
2007-07-05 01:12
2007.08.12
Индексация типов данных


3-1177705087
КрЫска
2007-04-28 00:18
2007.08.12
Символьные даннные из Oracle выдаются как #.


15-1184665440
@!!ex
2007-07-17 13:44
2007.08.12
Файлы из InstallShield


15-1184592922
Sdubaruhnul
2007-07-16 17:35
2007.08.12
Война браузеров доходит до идиотизма