В нашем случае, нажав «курсор вверх», оказываемся в фрагменте, имеющем начальные операторы "ветвь 1 уровень(1 2) новый равно(х4 1) ветвь 2 тип(х1 описать) равно(второйоперанд(х2) последнийоперанд(х2)) ветвь 3", причем через "ветвь 3" переходим обратно к начальному фрагменту приема.
Эти несколько операторов оказались общими у нашего приема с другими приемами, и они вынесены наружу.
Оператор "уровень(1 2)" проверяет равенство текущего уровня сканирования единице либо двойке; оператор "новый" блокирует попытки применения приема при локальных циклах повторного сканирования, предшествующих переводу терма задачи из «теневой» зоны в активную, оператор "равно(х4 1)" проверяет, что символ "плюс" встретился в условии задачи Оператор "тип(х1 описать)" фиксирует тип текущей задачи; оператор "равно(второйоперанд(х2)последнийоперанд(х2))" — проверяет, что сумма имеет два слагаемых. Одно из них соответствует квадрату неизвестного выражения, другое — его первой степени. Если уравнение изначально имело несколько членов с квадратом либо с первой степенью, то после срабатывания приемов приведения подобных членов с известными коэффициентами слагаемых останется ровно два.
Можно было бы просмотреть и фрагменты, предшествующие данному, однако в них ничего существенного не происходит — идет «главный ствол» программы символа "плюс", ответвления от которого соответствуют различным значениям уровня срабатывания. Поэтому возвращаемся через "ветвь 3" в начальный фрагмент приема. Пропуская фиктивный оператор "контрольприема", переходим к следующим операторам. Оператор "равно(хб неизвестные(х1))" присваивает переменной хб цель задачи xl, перечисляющую ее неизвестные Эта цель имеет вид (неизвестные х\ ...хп). Оператор "альтернатива(не(длинаменее(хб 3)) равно(х5 1) равно(х5 2))" проверяет, имеет ли задача одну неизвестную — тогда длина набора хб будет меньше 3, или больше одной — тогда эта длина будет не менее 3. Соответственно, в первом случае текущий уровень сканирования должен быть равен 2, а во втором случае — 1.
Опубликовал vovan666
February 11 2013 21:04:36 ·
0 Комментариев ·
3524 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.