[После]Новогодние задачи

Публикация № 1175267 30.12.19

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

Задачи алгоритмы математика виртуальные таблицы запросы соединения головоломки новый год СКД регистры проверка знаний тестирование загадки

Совсем немного времени осталось до того момента, когда отзвучат куранты, шампанское будет выпито, мандарины съедены, и даже оливье закончится. Возникнет вопрос: чем бы занять неожиданно появившееся свободное время?

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

1)

Начнем с классики:

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

2)

Имеется две таблицы, в первой - M записей, во второй - N записей. Какое максимальное и минимальное число записей может содержать результат а) левого соединения, б) внутреннего соединения и в) полного соединения таблиц? (дополнительные условия ГДЕ (WHERE) не накладываются).

3)

Существует рекомендация для оптимизации запросов: отборы при использовании виртуальных таблиц лучше задавать в параметрах виртуальной таблицы, а не в секции ГДЕ. Но всегда ли результаты будут идентичны? Другими словами: возможна ли ситуация, когда переместив условие из секции ГДЕ в параметры виртуальной таблицы, мы получим другой результат запроса?

4)

Есть справочник Контрагенты с табличной частью Скидки. Для каждого контрагента может быть несколько видов скидок, заданных в процентах.

При вычислении итоговой цены для контрагента все скидки применяются последовательно, т.е. например, если есть две скидки по 50%, то результирующая цена сторублевого товара будет: 100 минус 50% от 100 рублей и минус 50% от результата, итого - 25 руб. Таким образом итоговая скидка составила 75%.

Необходимо разработать отчет, который рассчитывает итоговые скидки контрагентов

5)

Программист Вася (не тот, который кот (c), а тот, который не кот) получил задачу:

Имеется две таблицы значений с колонкой "Наименование". Необходимо найти сколько строк (наименований) из первой таблицы присутствуют во второй. Вася решает сделать это за один проход по предварительно отсортированным таблицам и пишет вот такой код:

	ТЗ1.Сортировать("Наименование");
	ТЗ2.Сортировать("Наименование");
	
	КолВоСовпадений = 0;
	Индекс1 = 0;
	Индекс2 = 0;
	
	Пока Индекс1 < ТЗ1.Количество() И Индекс2 < ТЗ2.Количество()  Цикл
		Если ТЗ1[Индекс1].Наименование = ТЗ2[Индекс2].Наименование Тогда   
			КолВоСовпадений = КолВоСовпадений + 1;
			Индекс1 = Индекс1 + 1;			
		ИначеЕсли ТЗ1[Индекс1].Наименование < ТЗ2[Индекс2].Наименование Тогда   
			Индекс1 = Индекс1 + 1;
		ИначеЕсли ТЗ1[Индекс1].Наименование > ТЗ2[Индекс2].Наименование Тогда   
			Индекс2 = Индекс2 + 1;
		КонецЕсли; 
	КонецЦикла; 
	
	Сообщить("Количество совпадений: " + КолВоСовпадений); 

К сожалению, этот код ошибочен. Где ошибка? Как исправить?

6)

Дано не очень большое положительное целое число. Необходимо разделить его на N целых частей пропорционально (точнее примерно пропорционально) N весам.

Примеры:

Число: 100

частей: 2

веса: 1, 3.

Результат: 25, 75

Число: 1000

частей: 3

веса: 1, 2, 3.

Результат: 167, 333, 500

Обязательное условие: операции умножения и деления использовать нельзя!

 

На этом пока все. Поздравляю всех с Новым годом!

 

PS: Настоятельная просьба: пожалуйста, не пишите ответы и решения в комментариях, не лишайте сообщество удовольствия самостоятельного поиска решения! Желающие могут прислать свои варианты ответов в личку, постараюсь ответить всем.

UPD 16.01.2020:

 
Подсказка №1
 
Подсказка №2
 
Подсказка №3
 
Подсказка №4
 
Подсказка №5
 
Подсказка №6

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2300 30.12.19 12:16 Сейчас в теме
Вспоминается...
под маской непоймикогото
у ёлки пляшет наш главбух
он восхитительно прекрасен
он бух


Где то я видел такие задачки.
На собеседовании в дочке известно какой компании задавали )
2. Alxby 928 30.12.19 12:53 Сейчас в теме
(1):))
Нет, эти задачи не связаны с собеседованиями в дочке известно какой компании. Скорее всего те, кто эти собеседования проводил, также как и я, программировали в те времена, когда "640K ought to be enough for anybody"(с). Первая задача на Си вообще решается в одну строку.
3. capitan 2300 30.12.19 12:57 Сейчас в теме
(2)
Первую задачу я еще на Perl решал.
А у вас то доктор откуда такие картинки ? )
4. Alxby 928 30.12.19 13:13 Сейчас в теме
(3) Ну, к счастью, к доктору из анекдота нам обращаться не требуется). Но я с Вами согласен: разработчики умеющие (и желающие!) решать подобные задачи отличаются от массы "1С-негов", чья работа заключается в "натыкивании" настроек в конструкторах.
5. acanta 30.12.19 13:59 Сейчас в теме
С наступающим! Желаю последовательности во всех начинаниях.
https://youtu.be/g2K4rOfdHqc
6. FesenkoA 56 30.12.19 14:47 Сейчас в теме
Ответ1
8. Alxby 928 06.01.20 08:27 Сейчас в теме
(6)Интересный подход, надо обдумать. Правда в тексте задачи шла речь о числовых и строковых переменных))
10. FesenkoA 56 08.01.20 12:21 Сейчас в теме
(8) Числовые решаются очень просто

а=1, б=2

Б=А+Б;
А=Б-А;
Б=Б-А;
15. Alxby 928 08.01.20 15:51 Сейчас в теме
(10)Все верно. Но это не единственный вариант. Для числовых переменных есть еще как минимум два (не считая конечно же тривиальной замены '+' на '-'). Сможете найти? И все же ответы лучше в личку или под спойлер.
7. FesenkoA 56 30.12.19 14:50 Сейчас в теме
Ответ2
9. Alxby 928 06.01.20 08:28 Сейчас в теме
(7)Ответ неполный и местами неверный...
11. FesenkoA 56 08.01.20 12:27 Сейчас в теме
(9)Почему не полный? 3 подпункта, 3 подответа

Да, с внутренним тупанул..
16. Alxby 928 08.01.20 15:54 Сейчас в теме
(11)Неполный - в задаче спрашивалось и про минимальное количество записей в соединении.
21. FesenkoA 56 08.01.20 16:27 Сейчас в теме
(16) УУУпс, сорян))
ответ 2 дубль 2
22. Alxby 928 08.01.20 16:33 Сейчас в теме
12. FesenkoA 56 08.01.20 12:34 Сейчас в теме
ответ 3
17. Alxby 928 08.01.20 16:13 Сейчас в теме
(12)Можете привести конкретный пример?
Скрытый текст
19. FesenkoA 56 08.01.20 16:23 Сейчас в теме
(17)
Скрытый текст
Живой пример не вспомню, но было в расусовской конфе где то весной`19
13. FesenkoA 56 08.01.20 12:37 Сейчас в теме
Ответ 4= 3 часа работ если без красоты, и больше если с красотой) А если серьезно, то
Скрытый текст
18. Alxby 928 08.01.20 16:23 Сейчас в теме
(13)Схема СКД = 10 мин. работ, с красотой и тестированием - 15 мин.
Скрытый текст
23. FesenkoA 56 08.01.20 16:59 Сейчас в теме
(18) И опять неправильно прочитал задание, думал то что на картинке - дано, а не результат
Скрытый текст
14. FesenkoA 56 08.01.20 12:45 Сейчас в теме
ответ 5
20. Alxby 928 08.01.20 16:26 Сейчас в теме
(14)
Скрытый текст
Оставьте свое сообщение

См. также

[После] Новогодние задачи 2023

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

Не желаете ли очередную порцию интересных задач?

03.01.2023    1136    Alxby    18    

4

Если хочется низко-низкоуровневого программирования с битами и байтами

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

Все знают, что подавляющее большинство современных компьютеров работает в двоичном коде, т.е. оперирует всего двумя значениями - битами - "0" и "1". Потом из них складываются байты, слова, кило-, мега- и гигабайты etc. Но что происходит внутри процессора, как именно обрабатываются двоичные числа, например выполняются арифметические операции? Об этом — в публикации. Статья, я думаю, будет особенно интересна тем читателям, у которых во время обучения не было соответствующих курсов.

1 стартмани

01.12.2022    719    Alxby    16    

9

Тестирование средств 1С для решения СЛАУ

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

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

23.11.2022    1152    gzharkoj    11    

15

Перечень множественных значений в ячейке динамического списка. Как стало и как было

Механизмы платформы 1С Платформа 1С v8.3 План видов характеристик Абонемент ($m)

В платформе версии 8.3.21 наконец-то появилась возможность указать, что характеристика может содержать более одного значения, и правильно отобразить этот перечень в динамическом списке. Настройка нового механизма, а также альтернативы, используемые ранее, описаны в статье.

1 стартмани

20.09.2022    2866    Alxby    9    

45

Изменения формата файлов конфигурации (CF) в 8.3.16

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

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    2914    fishca    12    

32

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Установка отбора по списку значений при открытии формы выбора справочника из реквизита обработки

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

Описан алгоритм установки отбора по списку значений при открытии формы выбора справочника. Параметром отбора является список значений передаваемый из одной формы обработки в другую форму этой же обработки. Тестировано под платформу 8.3.18

11.12.2021    5645    prog1c_vl    4    

4

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

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

31.08.2021    4874    dusha0020    8    

62

Распределенные алгоритмы РИБ 1С

Математика и алгоритмы Обмен между базами 1C Платформа 1С v8.3 Бесплатно (free)

Небольшое исследование на тему применимости классических распределённых алгоритмов репликации и синхронизации данных между узлами обмена РИБ 1С.

02.07.2021    2008    zhichkin    1    

8

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Параллельная обработка очереди сообщений

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

Описание алгоритма обработки очереди последовательных сообщений регистрации изменений записей регистра сведений. Алгоритм может быть применим к любым объектам метаданных. Алгоритм основан на обработке объектов по их ключам.

15.06.2021    4008    zhichkin    11    

22

Чем воспользоваться для распознавания котиков в 1С?

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

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    4634    comol    10    

29

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    5067    SergeyN    13    

39

Рекурсия для начинающих

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

Рассмотрен подход к пониманию рекурсий. Приведены примеры из реальной практики.

10.02.2021    9987    szv    5    

13

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Самый быстрый FizzBuzz на 1С

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

Давайте попробуем найти самое быстрое решение задачи "BuzzFizz" на 1С.

03.02.2021    1861    Donrad    23    

11

Программное создание корректировочного счета-фактуры выданного в УПП 1.3

Математика и алгоритмы Механизмы типовых конфигураций Запросы Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет НДС Бесплатно (free)

Данный функционал можно использовать, например, в процессе оформления возвратов от поставщика (корректировка реализации по согласованию сторон) при автоматическом создании корректировок реализации по документам поставщика, он позволяет массово создать корректировочные счета-фактуры в УПП 1.3. При создании документа из первичного счета-фактуры выданного в новый корректировочный счет-фактуру выданный копируются значения свойств.

17.12.2020    1154    ksnik    0    

3

Параллельные вычисления расчета факториала числа N

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

Распараллеливание алгоритма с помощью фоновых заданий (асинхронные вычисления)

29.06.2020    5368    RustIG    18    

25

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

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

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    8256    randomus    20    

75

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Сравнение адресов: случай из практики

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

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

04.01.2020    5184    AnatolPopov    7    

22

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    38275    Infostart    63    

160

Иерархия без "В ИЕРАРХИИ"

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

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    18963    ildarovich    24    

181

Побитовые операции "на пальцах"

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

Простой пример для понимания того, как это работает.

02.08.2019    5123    nbeliaev    16    

8

Обработчики событий при записи объектов. Зачем и что за чем?

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

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    187373    AlbinaAAA    50    

719

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются...

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

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    6625    vandalsvq    19    

11

Что делает "В ИЕРАРХИИ" в запросе?

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

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    70810    Infostart    34    

128

Создание отчетов с помощью СКД - основные понятия и элементы

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

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    99041    ids79    32    

330

Реализуем Стек, Очередь и Приоритетную очередь в 1С

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

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

24.06.2019    19191    RonX01    69    

88

Организация хранения промежуточных данных

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

Организация хранения промежуточных данных в процедуре сверки.

29.05.2019    5036    scientes    1    

3

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Вычисление 200 тысяч знаков числа pi

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

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    10963    Oleg_nsk    97    

79

Парсер таблиц по шаблону. Автоматическая корректировка парсера. Представление таблиц в виде графа.

Математика и алгоритмы Работа с интерфейсом Универсальные функции Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

25.04.2019    4652    trim89    5    

24

Нечёткий поиск. Bitap алгоритм, модификация от Wu-Manber

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

Временами нужен нечёткий поиск в тексте, но не всегда можно использовать внешние компоненты. Данный алгоритм прост, достаточно быстр.

01.04.2019    5776    trim89    10    

48

Решение системы линейных уравнений

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

Пример использования объекта Расчет систем линейных уравнений.

25.03.2019    10934    scientes    12    

49

Обсуждение двух задач на пересечение отрезков

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

Ищем общее в частностях, или задача о пересечении отрезков.

15.03.2019    7545    scientes    16    

24

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Многопоточное восстановление последовательностей

HighLoad оптимизация Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Универсальный алгоритм многопоточного фонового восстановления любой последовательности.

05.12.2018    17037    _ASZ_    33    

52

Возврат (loop) в Алгоритмах визирования. Бит Финанс

Бюджетирование и планирование Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Россия Бюджетный учет Бесплатно (free)

В статье рассматривается минимальная доработка конфигурации БИТ Финанс, с сохранением поддержки, для расширения функционала Визирования: Возрат к предидущим точкам алгоритмов. Полезно будет для программистов и специалистов, занимающихся внедрением БИТ Финанс.

07.08.2018    8580    gladky    2    

11

Извлечение текстов модулей из внешней обработки 1С

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

Лень в очередной раз сподвигла меня на доработку существующего инструментария. В публикации опишу свой опыт парсинга бинарного файла с данными обычной формы (выгруженного с помощью функционала платформы 1С "Выгрузить в файлы").

28.04.2018    17214    zenechka    6    

28

Преобразование запросов

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

Использование математических методов для языка запросов.

15.03.2018    12959    vasilev2015    24    

17

"Взлом" теста "1С:Профессионал" методом машинного обучения

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

Нейронные сети – не единственная модель, реализующая принципы машинного обучения. Есть еще байесовская модель, которая математически строже и определеннее, поскольку построена на надежном фундаменте теории вероятностей. Применению байесовского вывода к решению интересной теоретической задачи и посвящена данная статья. Слово "взлом" в заголовке использовано для привлечения внимания. Речь идет исключительно о математическом методе, показанном на примере знакомой всем задачи. 

12.03.2018    23059    ildarovich    44    

95