После этого оператора выполняется не следующий по порядку оператор, а тот, который помечен указанной меткой. Например:
ИЗ ТЧ8
НАМЕТКУ К2
ИДИ НА ПРХ
К2: В ТОЧКУ ТЧА
ПРИРАЩ 20
В приведенном фрагменте программы после оператора ИЗ будет выполнен не оператор
ИДИ, а помеченный оператор ВТОЧКУ- Оператор ЕСЛИ имеет следующий формат:
ЕСЛИ (логическое выражение) оператор1[; оператор2; …; операторn] где оператор1, оператор2, ... и т. д.− операторы языка Техтран.
В том случае, если логическое выражение, заключенное в скобки, имеет значение ИСТИНА, то последовательно выполняются оператор1, оператор2 и т. д. Если значение логического выражения − ЛОЖЬ, то выполняется оператор2, а если он отсутствует, то выполняется оператор, находящийся в следующей строке программы. Оператор1, оператор2, ... и т. д. могут быть только простыми операторами входного языка. Применение составных операторов типа ПОВТОР, КОНТУР, МАКРО недопустимо. Например: ЕСЛИ (А>0.5 ИЛИ А<0) НАМЕТКУ М24
Переход на метку М24 выполняется, если значение переменной А больше 0.5 или меньше 0.
Если значения переменной К меньше 10, то будут выполнены операторы присваивания для ТЧ1 и ТЧ2:
ЕСЛИ (К МНШ 10) ТЧ1=0, 0, 5; ТЧ2 = ПРЗ, ПР4
ТЧ6 = ЦЕНТР, КР2
При других значениях переменной К логическое выражение принимает значение ЛОЖЬ, геометрическое определение точки ТЧ1 опускается и выполняются операторы ТЧ2= . . . и ТЧ6= . . .
Оператор ЕСЛИ−ТО−ИНАЧЕ−КОНЕСЛИ имеет следующий формат:
ЕСЛИ (логическое выражение) ТО
КОНЕСЛИ
Если логическое выражение имеет значение ИСТИНА, то последовательно выполняются операторы списка, расположенного после слова ТО. Если же значение логического выражения − ЛОЖЬ, то выполняются операторы списка, стоящего за словом ИНАЧЕ. Любой из этих списков может быть пустым − в этом случае будет выполняться оператор, следующий за ограничителем КОНЕСЛИ. При отсутствии слова КОНЕСЛИ выдается предупреждение и ошибка корректируется. Например:
1) ЕСЛИ (А> =0) ТО
А = А
ИНАЧЕ А = - А
КОНЕСЛИ
В результате будет вычислено абсолютное значение А.
2) ЕСЛИ (Х> =0) ТО У = КВКОР (X)
ИНАЧЕ
КОНЕСЛИ
В этом примере отсутствует второй список. Оператор аналогичен оператору ЕСЛИ (X БРВ 0) У = КВКОР (X).
3) ВПЕРЕД ПРХ НА ПРУ
ПР1=ПАРЛЕЛ, ПРХ, А
ЕСЛИ (А>0) ТО
ВЛЕВО ПРУ НА ПР1
ИНАЧЕ
ВПРАВО ПРУ НА ПР1
КОНЕСЛИ
В этом примере выбирается оператор движения ВПРАВО или ВЛЕВО в зависимости от положения прямой ПР1 относительно оси х.
Оператор ПОВТОР предназначен для многократного повторения участка программы, называемого телом цикла. Существуют две модификации оператора ПОВТОР: 1) цикл со счетчиком и 2) цикл ПОКА.
Формат 1-го варианта оператора: ПОВТОР перем = нач, кон [, шаг]
оператор1 оператор2
.
.
.
операторn
КОНЦИКЛ [перем]
где перем − идентификатор вещественной переменной, являющейся управляющей переменной цикла; нач − число, переменная или арифметическое выражение, задающие начальное значение управляющей переменной цикла; кон − число, переменная или арифметическое выражение, задающие конечное значение управляющей переменной цикла; шаг − число, переменная, или арифметическое выражение, задающие приращение управляющей переменной; по умолчанию приращение равно 1; оператор1, оператор2, ..., операторn− операторы входного языка, составляющие тело
цикла.
При первом исполнении цикла перем = нач, при втором − перем = нач + шаг и т. д. до тех пор, пока удовлетворяется условие: перем*шаг≤кон*шаг. После последнего исполнения цикла управление передается оператору, следующему за оператором КОНЦИКЛ, а управляющая переменная цикла перем принимает первое значение, не удовлетворяющее этому условию. Значение управляющей переменной цикла перем может быть использовано при вычислениях так же, как значение любой другой вещественной переменной, например: ПОВТОР И = 1, 10
А (И)=0
КОНЦИКЛ И
В результате выполнения этого цикла первым десяти элементам массива А присваиваются нулевые значения, например:
Т = 6,5
ПОВТОР И =1,7
Т = Т-И
ЕСЛИ (Т МНШ 0) НАМЕТКУ Ml
Т = Т + 2.0
КОНЦИКЛ И
М1:Р = Т Т
В процессе выполнения цикла переменная Т последовательно принимает следующие значения: 6,5; 5,5; 7,5; 5,5; 7,5; 4,5; 6,5; 2,5, 4,5; −0,5. Затем оператор ЕСЛИ передает управление на оператор с меткой Ml, при этом И = 5.
Если начальное значение переменной Т принять равным 26,5, то последующие ее значения, вычисленные в цикле, будут равны: 27,5; 27,5; 26,5; 24,5; 21,5; 17,5; 12,5. Затем произойдет нормальный выход из цикла; при этом И = 8, так как это первое значение переменной И, при котором перестает выполняться условие И*1^7*1.
Формат 2-го варианта оператора:
ПОВТОР ПОКА (логическое выражение) оператор1 оператор2
.
.
.
операторт
КОНЦИКЛ
Такая конструкция позволяет повторять выполнение операторов, составляющих тело цикла, до тех пор, пока логическое выражение, находящееся в заголовке цикла, сохраняет значение ИСТИНА. Для нормального завершения такого цикла необходимо, чтобы в теле цикла имелись операторы присваивания, изменяющие значения переменных, которые входят в логическое выражение. Если перед очередным повторением цикла обнаруживается, что логическое выражение имеет значение ЛОЖЬ, то управление передается оператору, следующему за оператором КОНЦИКЛ. Если значение выражения оказывается ложным с самого начала, то операторы, составляющие цикл, не выполняются.
В качестве примера приведем программу вычисления значения корня кубического с использованием метода Ньютона. Полагаем хо=1 и затем вычисляем, Ax1,
3
где А − число, из которого необходимо извлечь корень кубический.
Далее полагаем хо = х1 и вычисляем новое значение х2. Процесс вычислений продолжается до тех пор, пока разница между двумя последовательными значениями х не окажется в пределах допустимой ошибки. Например, процесс вычисления корня кубического из числа 4 можно представить следующим образом: А = 4; хо=1; х1= (2 + 4/1)/3 = 2; х2=(4 + 4/4) 3=1.667; х3= (3.333 + 4/2.778)/3= 1.591.
Если продолжить процесс вычислений, то значения х будут приближаться к 1,5874 − корню кубическому из 4. Программа на Техтране будет иметь вид:
ХСТАР = 0
ХНОВ = 1
ПОВТОР ПОКА ( АБС ( ХНОВ-ХСТАР) БЛШ 0.0001)
ХСТАР = ХНОВ
ХНОВ = (2*ХСТАР + 4/ХСТАР**2)/3
КОНЦИКЛ
Разрешается использовать вложенные циклы. В этом случае тело внутреннего цикла полностью должно находиться в теле внешнего цикла, т. е. перекрытие циклов не допускается.
Глубина вложений должна быть не больше 10. Рассмотрим случай вложения двух циклов:
ВЕЩ А (50,6)
ПОВТОР Н=1,50
ПОВТОР И = 2,6
ХК = И
А (Н,И) = (1.0 + 0,01*ХК)**И
КОНЦИКЛ И
КОНЦИКЛ Н
Эта программа вычисляет значения А(Н,И) = (1 +И)Н для И = 0.01; 0.02; 0.03; ... . . . ; 0,06 и И=1, 2, .... 50.
Не допускается применять операторы, лежащие вне тела цикла и передающие управление внутрь цикла. Варианты допустимых передач управления показаны на рис. 2.114.
Использование циклов должно быть согласовано с использованием макросов. Это означает, что цикл, начинающийся (кончающийся) внутри макроса, должен там же и кончаться (начинаться).
Управление печатью. Каждая фаза процессора системы Техтран осуществляет вывод информации на печать. Для управления объемом выводимой информации в языке имеются специальные операторы: ПЕЧТЕКСТ, ПЕЧТР, СЛЕД и ПЧТ1.
Оператор ПЕЧТЕКСТ предназначен для управления распечаткой исходного текста программы на Техтране (результат работы первой фазы процессора). Оператор имеет следующий формат:ÂÊË
ПЕЧТЕКСТ ÂÑÅ
где ВКЛ − распечатка всей вводимой информации кроме расшифровок операторов ВЫЗОВ; ВСЕ − полная распечатка, включая расшифровки операторов ВЫЗОВ; ВЫКЛ − подавление печати вводимой информации.
Отсутствие оператора ПЕЧТЕКСТ эквивалентно применению оператора ПЕЧТЕКСТ ВКЛ. Операторы ДЕТАЛЬ и КОНЕЦ, а также строки, содержащие ошибки, выводятся на печать всегда.
Оператор ПЕЧТР устанавливает режим распечатки траектории движения инструмента и имеет формат: ÂÊËПЕЧТР ÂÑÅ
При отсутствии в программе оператора ПЕЧТР или при использовании оператора ПЕЧТР ВКЛ на печать выводятся следующие параметры выполняемого движения: данные об инструменте, метод интерполяции и точность линейной аппроксимации, параметры геометрических объектов, образующих контур, координаты начальной точки, координаты точек пересечения эквидистант, координаты опорных точек.
При наличии в программе таблично заданных кривых и контуров формируются сообщения «НАЧАЛО КОНТУРА», «КОНЕЦ КОНТУРА», а также параметры геометрических элементов и координаты точек пересечения этих элементов.