Мультиквайн на 1С. Курица и яйцо

07.09.16

Разработка - Математика и алгоритмы

Мультиквайн - программа, выдающая текст другой программы, которая, в свою очередь, выдаёт текст первой. Теперь и на 1С.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка "Курица" (8.2)
.epf 12,59Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.
Обработка "Яйцо" (8.2)
.epf 11,85Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

Квайны – программы, выдающие свой собственный текст. Весьма популярное упражнение для начинающих программистов. Пока не понял, как такое делается, задача кажется какой-то запредельной мистикой, но, конечно, ничего сверхсложного в ней нет. Пишут такие штуки и на 1С. В частности, на Инфостарте тоже есть несколько экземплярчиков: здесь, здесь и здесь,

Мультиквайн – задачка немножко поинтереснее. Ещё интереснее сделать мультиквайн с сюжетом. Берём классику жанра – курицу и яйцо. Пусть курица несёт яйца, а из яйца получается курица. Но кто сказал, что выдача текстов - это единственное, чем может заниматься мультиквайн? Туда, вовнутрь, кроме текстов ещё много чего может поместиться. Пусть курица умеет находить пищу, а яйцо пусть выглядит как яйцо и для «срабатывания» требует некоторого высиживания.

К статье прикреплены два файла (в формате 8.2), но скачивать оба нет никакого смысла. Второй получается из первого, а первый из второго.

Возьмём для начала, например, курицу. Запускаем. Можно поиграть с курицей. Порисовать лабиринт и посмотреть, как курица находит кратчайший путь к еде:

Размер лабиринта ограничен трудолюбием и здравым смыслом. По нажатию на кнопку «Отложить яйцо» выдаётся текст модуля управляемой формы для обработки «Яйцо»:

По инструкции в комментариях делаем и запускаем яйцо:

После "высиживания" (10 секунд, чтобы никого не мучить) получаем текст курицы:

Если есть желание, можно сравнить с текстом исходной обработки и убедиться в том, что этот двойственный объект смог породить сам себя.

Для интересующихся классическим вопросом про курицу и яйцо

1. Курица не может появиться раньше яйца, потому что все куры вылупляются из яиц.

2. Куриное яйцо не может ни откуда взяться, кроме как из курицы.

Оба утверждения – правда. Имеем ситуацию, известную как антиномия. Взаимоисключающие альтернативы, каждая из которых железобетонно обоснована. Взрыв мозга. Но не всё так плохо. Появление антиномии – признак того, что ошибка спрятана в самой постановке вопроса.

В данном случае ошибка в том, что, по-видимому, никогда не было никакой первой курицы и первого куриного яйца. Есть сведения, что десятки миллионов тому назад на Земле обитали существа, которых даже при очень богатом воображении не получилось бы назвать курами. И несли они яйца, которые товаровед супермаркета не согласился бы принять как куриные даже за крупную взятку. А сейчас есть и куры, и яйца. Между «тогда» и «сейчас» – десятки миллионов поколений существ, всё больше и больше похожих на кур, несущих яйца, всё больше и больше похожие на куриные. Провести чёткую границу, до которой нет кур, а после которой есть – без шансов. Нечёткая логика чёткой границы не предполагает.

З.Ы. Шедевр мультиквайностроения – это, конечно, чудовище «Уроборос» глубоко за этот подвиг уважаемого Yusuke Endoh. Цепочка из 100 программ на разных языках, включая самые экзотические.

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3166    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7557    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3112    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10906    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4362    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    3532    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9042    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Makushimo 160 08.09.16 09:53 Сейчас в теме
етить-колотить ))))
so-quest; pbahushevich; dour-dead; kg_am; kraynev-navi; Alias; wbazil; ValeriTim; a_a_burlakov; ya.Avoronov; +10 Ответить
2. bulpi 217 09.09.16 12:22 Сейчас в теме
Читая такие публикации, я завидую авторам белой завистью : ну до чего ж людям делать нечего!
3. kg_am 178 09.09.16 17:31 Сейчас в теме
(2) bulpi,
К сожалению (или всё же к радости?) всё строго наоборот. Делать определённо есть что, но иногда душа настойчиво просит помимо большого, тяжёлого и долгоиграющего сделать по-быстрому что-нибудь маленькое, элегантное и от начала до конца не серьёзное.

Или примем за догму, что 1С - это исключительно активы, пассивы, печатные формы, НДСы, бизнес-процессы и прочая подобная нуднятина?
4. s_vidyakin 68 11.01.19 15:32 Сейчас в теме
на Земле обитали существа, которых даже при очень богатом воображении не получилось бы назвать курами. И несли они яйца
хорошо, тогда обобщим проблему - что было сначала, существо, несущее яйца или яйцо? ))
5. kg_am 178 11.01.19 23:36 Сейчас в теме
(4) Очевидно, что яйца, которые никто не нёс.
Оставьте свое сообщение