Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Алгоритм для формирования заплывов в соревнованиях
 
Вариант Маугли хорош. Уточнил у тренера, да, Андрей Вы правы, по регламенту соревнований в последнем заплыве группы если остается один участник, то надо оставить в предыдущем 5 участников (для 6 дорожек), а в последнем будет 2 участника. (моменты где есть один участник в группе невозможен по регламенту т.к. участников всегда больше чем в тестовом файле, но код эту ситуацию обрабатывает и это хорошо). Девочки и мальчики плывут отдельно, у них таблица разрядов разная, Правда бывают случаи, сам наблюдал с балкона, когда делали отступления и совмещали два заплыва в один, но это редкость и уже будет ручная корректировка. Да и ближайшие соревнования будут через неделю попробую обкатать и выложу, что получится. Сейчас при создании массива участников добавил ключевое поле, которое складывается по формуле "Категория &100+дистанция&пол". потом по этому полю и по заявленному времени сортирую и в коде Маугли дописал Case на выбранный бассейн с 4 и 8 дорожками. Сейчас разберусь еще с подсчетом участников одного заплыва, чтобы не оставался сирота в последнем заплыве и все будет хорошо.
Спасибо за помощь и за готовый код.
Изменено: goldenbid - 10.12.2017 15:55:17
Алгоритм для формирования заплывов в соревнованиях
 
Подскажите пожалуйста, у кого есть идея алгоритма как сформировать заплывы на соревнованиях.
нужна идея.

задача: (реализовывать буду через макрос- нажал кнопку и получил результат.)

Есть таблица с реквизитами пловцов (файл приложу).  
Заплывы формируются  по группам, дистанциям, полу, из сортированной таблицы по группам, дистанциям, полу и заявленному результату.
При этом бассейны могут быть с 4, 6, 8 дорожками (задаем в параметре)
мне надо придумать как разбить спортсменов чтобы заплывы формировались так:
берем 6 дорожек бассейн,
для первого заплыва топ шесть спортсменов выставляем первого на 3 дорожку, второго на 4, третьего на 2, четверного на 5, пятого на 1 и шестого на 6.
берем следующие 6 записей с 7 и расставляем порядок дорожек с максимума до минимума 3 4, 2 5, 1 6.
для бассейна на 4 дорожки расставлять 2 3, 1 4
для восьми дорожек   4 5,  3 6,  2  7,  1  8.
и так до конца списка девочек отдельно, мальчиков отдельно.
Но если остается 1 человек в остатке, то 1 и 6 дорожку забрать на последний заплыв или хотя бы одну 6ую или 4ую или 8ую.

А уже эту таблицу сортировать по заплывам и дорожкам 3 строки кода.

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

А так тренера заставляют родителей и спортсменов ждать 20-30 минут пока вручную сведут данные и распределят места.
Изменено: goldenbid - 08.12.2017 18:39:09
Страницы: 1
Наверх