Использование
циклов в системе
"СТАТУРА"
Для многократного повторения участков программы можно организовать цикл.
Команды управления циклом
WHILE(<условие входа и продолжения
цикла>) начало
зоны цикла
ENDWHILE окончание
зоны цикла
BREAK выход из
цикла
CONTINUE переход
на первую строку цикла
ПРИМЕР
подгонки длины линий
оката рукава к длинам линий пройм
с использованием циклов
Исходные данные |
||||||
Пройма спинки |
Пройма полочки |
Рукав |
||||
Класс <S1>
Длина проймы - 236.48 |
Класс <P1>
Длина проймы - 203.92 |
Рукав <R1>
|
||||
Подгонка нижней части оката |
||||||
| // Активный класс R1 // i5 - номер точки A5 в контуре i5=INDEX(A5) // len7 - длина нижнего участка проймы полочки len7=LENGTH(P1.A7) // Вход в цикл для подгонки длины нижней части оката со стороны полочки WHILE(2>1) // Вызов процедуры из библиотеки "Okat.lbr" для построения кривых // нижней части оката L0.Niz(i5) // len10 - длина нижней части оката со стороны полочки len10=LENGTH(A10) // Условие для выхода из цикла IF((len10>len7-0.5.AND.len10<len7+0.5) BREAK ENDIF // dlt - шаг подгонки. Определение знака IF(len10>len7) dlt=-1 ELSE dlt=1 ENDIF // Смещение точки A11 на шаг dlt MOVER(dlt,0,A11) // Возврат в начало цикла ENDWHILE // len3 - Длина нижнего участка проймы спинки len3=LENGTH(S1.A4) // Вход в цикл для подгонки длины нижней части оката со стороны спинки WHILE(2>1) // Вызов процедуры из библиотеки "Okat.lbr" для построения кривых // нижней части оката L0.Niz(i5) // len5 - длина нижней части оката со стороны спинки len5=LENGTH(A5) //Условие для выхода из цикла IF((len5>len3-0.5.AND.len5<len3+0.5) BREAK ENDIF // dlt - шаг подгонки. Определение знака IF(len5>len3) dlt=-1 ELSE dlt=1 ENDIF // Смещение точки A5 на шаг dlt MOVER(-dlt,0,A5) // Возврат в начало цикла ENDWHILE |
Окат
после подгонки низа Длина: |
|||||
Подгонка верхней части оката |
||||||
| // Активный класс R1 // i6 - номер точки A6 в контуре i6=INDEX(A6) // len4 - длина верхней части оката с учетом посадки len4=LENGTH(S1.A5,P1.A6)*1.17 // Вход в цикл для подгонки длины верхней части оката WHILE(2>1) // Вызов процедуры из библиотеки "Okat.lbr" для построения кривых // верхней части оката L0.Verh(i6) // Длина верхней части оката рукава len6=LENGTH(A6:A8) //Условие для выхода из цикла IF((len6>len4-0.5.AND.len6<len4+0.5) BREAK ENDIF // dlt - шаг подгонки. Определение знака IF(len6>len4) dlt=-0.3 ELSE dlt=0.3 ENDIF // Смещение точки A8 на шаг dlt A8.Y=A8.Y+dlt // Возврат в начало цикла ENDWHILE |
Окат
после подгонки низа и верха Длина: |
|||||