OberonCore
https://forum.oberoncore.ru/

Конструкция AND THEN?
https://forum.oberoncore.ru/viewtopic.php?f=27&t=3175
Страница 2 из 2

Автор:  Владислав Жаринов [ Четверг, 20 Январь, 2011 06:25 ]
Заголовок сообщения:  Re: Конструкция AND THEN?

albobin писал(а):
Чем не очень нравится конструкция с AND THEN, так тем (по мимо всего прочего), что она не эквивалентна последовательности IFов:
IF лог.выражение1 THEN действие 1 END
IF лог.выражение1 AND лог.выражение2 THEN действие 2 END
и т.д.
Так ведь Илья и хотел выразить не это, а вот это наверное (если я не прав - думаю, меня поправят :) ):
Вложение:
Рисунки А3LS - Конструкция AND-THEN (примитив).png
Рисунки А3LS - Конструкция AND-THEN (примитив).png [ 61.62 КБ | Просмотров: 3223 ]
Да, и блоки <И1{,ИL}> у нас лианные - т.е. не получаются просто вложением атомарных блоков (понятно, когда хотя бы один ИL присутствует :) )...

Автор:  albobin [ Четверг, 20 Январь, 2011 08:09 ]
Заголовок сообщения:  Re: Конструкция AND THEN?

Драконограф писал(а):
albobin писал(а):
Чем не очень нравится конструкция с AND THEN, так тем (по мимо всего прочего), что она не эквивалентна последовательности IFов:
IF лог.выражение1 THEN действие 1 END
IF лог.выражение1 AND лог.выражение2 THEN действие 2 END
и т.д.
Так ведь Илья и хотел выразить не это, а вот это ...


Конечно речь шла об этой конструкции с самого начала (не примите это как ответ за И.Ермакова), вот поэтому и возникло замечание. AND воспринимается (по крайней мере у меня) как продолжение логического выражения.Конечно это восприятие сугубо индивидуальное.
Хотя в своём замечании немного не точно выразил мысль. Надо наверное так:
исходная конструкция с AND THEN не сводима к последовательности IFов, которую я привёл, хотя наличие AND провоцирует на это.
А не сводима по очевидной причине - значения одних и тех лог.выражений могут не совпадать при переходе на следующий IF.

И ещё. Лично я не сторонник использования только одного подхода (шаблона). Нет одного наилучшего решения. Всё зависит от конкретной задачи.Выбор того или иного способа определяется эстетичностью, наглядностью и т.п. конечного результата.

Автор:  Владислав Жаринов [ Четверг, 20 Январь, 2011 12:20 ]
Заголовок сообщения:  Re: Конструкция AND THEN?

albobin писал(а):
Конечно речь шла об этой конструкции с самого начала (не примите это как ответ за И.Ермакова), вот поэтому и возникло замечание...
исходная конструкция с AND THEN не сводима к последовательности IFов, которую я привёл, хотя наличие AND провоцирует на это.
А не сводима по очевидной причине - значения одних и тех лог.выражений могут не совпадать при переходе на следующий IF.
Видимо, поэтому в выделенной отсюда ветке и обсуждаются подходящие ключевые слова и другой синтаксис - чтобы явно читалось...
albobin писал(а):
И ещё. Лично я не сторонник использование только одного подхода (шаблона). Нет одного наилучшего решения. Всё зависит от конкретной задачи.Выбор того или иного способа определяется эстетичностью, наглядностью и т.п. конечного результата.
Ага. Вот я тут набросал "графитно" - возможны ещё как минимум два варианта (правда, в языках без БП можно реализовать, конечно, только ЦД):
Вложение:
Рисунки А3LS - Конструкция AND-THEN (примитив, силуэт и ЦД).png
Рисунки А3LS - Конструкция AND-THEN (примитив, силуэт и ЦД).png [ 198.13 КБ | Просмотров: 3189 ]
Минус ЦД-варианта, каков он здесь - при выходе всё равно надо проходить по ЦД-шапке (сравнивая с нулевым номером этапа). Плюс - мы видим, чего делаем для выбора маршрута (как в автоматном программировании - напр. здесь). И, если я правильно понимаю - конструкция с явным использованием номера этапа будет делать то же самое - какими ключевыми словами её не представляй...
    Кстати, ЦД-вариант, наверное, можно оптимизировать - перенося как-то содержательные условия из "подвала" в "шапку" (считая, что на входе в конструкцию у нас "всё удалось")... подумать надо...
    Ещё один плюс ЦД-записи - уже технологический - при создании ЦД можно обойтись вложениями атомарных блоков (см. в этом подпункте).

Автор:  ilovb [ Воскресенье, 25 Декабрь, 2011 19:15 ]
Заголовок сообщения:  Re: Конструкция AND THEN?

alexus писал(а):
Что мешает сделать этапы логическими функциями? Тогда было бы просто...
Код:
IF <этап0> AND <этап1> AND <этап3> ... THEN....


Поддерживаю
Я всегда так пишу... не задумываясь. Стандартный такой шаблон уже в мозгах

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/