Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цикл не работает ... ?


Иринка ©   (2007-11-16 20:40:00) 


 lmbd:= StrToInt(Edit1.Text);
 Tk:= StrToInt(Edit24.Text)*60*60;
 Vr_mashin_obsh:= StrToInt(Edit5.Text);
 Scale:= Tk/Vr_mashin_obsh;
 Delt:= StrToInt(Edit6.Text);
 Delt_m:= 60*Delt/Scale;

 Kl1_post:=0;
 Kl2_post:=0;


 Kl1_ochered:=0;
 Kl2_ochered:=0;
 
Vremya_tekyshee:=0;
Vremya_obsl1:= 0;
Vremya_obsl2:=0;
if Edit2.Text='2' then
begin
 repeat
   Vremya_tekyshee:= Vremya_tekyshee+Delt_m;
   Kol_post:= Kolichestvo(lmbd);
       if (Kl1_ochered > Kl2_ochered) or (Kl1_ochered = Kl2_ochered)  then
      begin
       Kl2_ochered:= Kl2_ochered+Kol_post;
        if Vremya_tekyshee > Vremya_obsl1 then
          begin
            Kl2_post:= Kl2_post + 1;
            Kl2_ochered:= Kl2_ochered - 1;
            Vr_obsl1:= Vremya_obslugivania(StrToInt(Edit3.Text)/Scale, 15/Scale);
            Vr_obsl2:= Vremya_obslugivania(StrToInt(Edit4.Text)/Scale, 20/Scale);
            Vremya_obsl1:= Vr_obsl1 + Vr_obsl2 + Vremya_tekyshee;
          end
      end
     else
      begin
       Kl1_ochered:= Kl1_ochered+Kol_post;
       if Vremya_tekyshee > Vremya_obsl2 then
          begin
            Kl1_post:= Kl1_post + 1;
            Kl1_ochered:= Kl1_ochered - 1;
            Vr_obsl1:= Vremya_obslugivania(StrToInt(Edit3.Text)/Scale, 15/Scale);
            Vr_obsl2:= Vremya_obslugivania(StrToInt(Edit4.Text)/Scale, 20/Scale);
            Vremya_obsl2:= Vr_obsl1 + Vr_obsl2 + Vremya_tekyshee;
          end
      end;

  until Vremya_tekyshee < Vr_mashin_obsh;
end;


Цикл repeat until явно не работает почему-то. Наращивание Vremya_tekyshee не происходит.

ПОчему? Подскажите, плиз


SergeyIT   (2007-11-16 23:29:00) [1]


> а то долго считать будет

В случае ошибок


SergeyIT   (2007-11-16 22:04:00) [2]

The syntax of a repeat statement is

repeat statement1; ...; statementn; until expression

where expression returns a Boolean value. (The last semicolon before until is optional.) The repeat statement executes its sequence of constituent statements continually, testing expression after each iteration. When expression returns True, the repeat statement terminates. The sequence is always executed at least once because expression is not evaluated until after the first iteration.

То есть надо наверно

until Vremya_tekyshee > Vr_mashin_obsh;

и соответствующие проверки на время поставить,  а то долго считать будет


Сергей С.   (2007-11-16 21:01:00) [3]


> Джо ©   (16.11.07 20:57) [5]


После твоего [2] я почуял, что и мне оно не надо)


Правильный_Вася   (2007-11-16 20:58:00) [4]

так мож условие сразу невыполняется и выпадает из цикла после первой итерации


Джо   (2007-11-16 20:57:00) [5]

> [4] Сергей С.   (16.11.07 20:49)
>
> > Джо ©   (16.11.07 20:43) [2]
>
>
> Долбаный поиск в MSE подвел)
> А копаться в г..не "ручками", согласись, занятие не из приятных)

В нем даже автор копаться не желает, мне-то зачем?! :)


Сергей С.   (2007-11-16 20:49:00) [6]


> Джо ©   (16.11.07 20:43) [2]


Долбаный поиск в MSE подвел)
А копаться в г..не "ручками", согласись, занятие не из приятных)


Джо   (2007-11-16 20:44:00) [7]

> [2] Джо ©   (16.11.07 20:43)
Это я Сергею_С.

А Иринке скажу, чтобы она привела эту кашу в порядок (прежде всего, для себя), ибо никто в ней копаться не будет.


Сергей С.   (2007-11-16 20:43:00) [8]

Потому что в этой абракадабре нигде не фигурирует модификация этого самого "Vremya_tekyshee"


Джо   (2007-11-16 20:43:00) [9]

>  Vremya_tekyshee:= Vremya_tekyshee+Delt_m;

 Vremya_tekyshee:= Vremya_tekyshee+Delt_m;
;>


Наверх

Титульная страница Поиск, карта сайта Написать письмо