С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/46: Рейтинг темы: голосов - 46, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10

Автоматическое составление расписания чемпионата

18.10.2009, 16:08. Показов 8908. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Кто чем может помогите, либо направьте в нужное русло. Вот такая вот задачка у меня:

Чемпионат проводится по двух круговой системе (каждый с каждым).
В каждом туре участвуют все команды, если их четное количество, или одна команда отдыхает.
В каждом туре команда проводит только 1 игру.
Пара команд, которая уже встречалась, может сыграть только во втором круге, поменявшись полями (например ЦСКА – Зенит -> Зенит – ЦСКА).

Входные данные:
Текстовый файл содержит названия команд (от 4 до 20, количество может быть четным и нечетным).

Выходные данные:
Расписание (выходной текстовый файл) имеет следующую структуру:
Строка с номером тура
Несколько строк с парами команд, разделенных « – ».

Пример:
ВХОД:
ЦСКА
Зенит
Спартак
Динамо

ВЫХОД:
1 тур
ЦСКА – Зенит
Динамо – Спартак
-------------------------------------
2 тур
Зенит – Динамо
Спартак – ЦСКА
-------------------------------------
3 тур
ЦСКА – Динамо
Зенит – Спартак
-------------------------------------
4 тур
Динамо – Зенит
ЦСКА – Спартак
-------------------------------------
5 тур
Спартак – Динамо
Зенит – ЦСКА
-------------------------------------
6 тур
Динамо – ЦСКА
Спартак – Зенит
-------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2009, 16:08
Ответы с готовыми решениями:

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

Составление расписания
Здравствуйте. Передо мной стоит задача, написать программу для составления расписания ВУЗа. Писать хочу в C#, так как немного с ним знаком....

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

11
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
18.10.2009, 19:53
Если N - число команд, то общее число встреч равно 2*(N-1)!
В данном случае N=4, встреч=2*3!=12
Понятно что в одном туре может быть только N/2 игр.
Значит будет 6 туров.
Задача аккуратно сгенерировать все варианты встреч.
0
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10
18.10.2009, 19:55  [ТС]
а можешь на примере?
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
18.10.2009, 20:18
Предлагаю вариант: например команд 4
Создаем список команд в массиве
Создаем массив:
индексы 0 1 2 3
0 -1 0 0 0
1 0 -1 0 0
2 0 0 -1 0
3 0 0 0 -1
После первого прохода:
индексы 0 1 2 3
0 -1 1 0 0
1 0 -1 0 0
2 0 0 -1 1
3 0 0 0 -1
Условие изменения значений массива будет чтобы индексы не повторялись
После второго прохода
индексы 0 1 2 3
0 -1 1 2 0
1 0 -1 0 2
2 0 0 -1 1
3 0 0 0 -1
После третьего прохода
индексы 0 1 2 3
0 -1 1 1 3
1 0 -1 3 1
2 0 0 -1 1
3 0 0 0 -1
ну и т.д.
а потом только остается:
Первый тур: (ищем элементы массива равные 1)
если i>j то Зенит - ЦСКА, если i<j то ЦСКА-Зенит
Для второго тура элементы равные 2 и т.д.
i и j здесь будут являться индексами для массива со списком команд
0
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10
18.10.2009, 20:23  [ТС]
а если команды записывать в каждую строчку, то тогда что делать?
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
18.10.2009, 20:27
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Создаем список команд в массиве
Здесь я имел ввиду, что создаем массив размером = количеству команд
Затем заполняем его из входного файла.
0
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10
18.10.2009, 21:04  [ТС]
может кому не трудно напишите код?
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
19.10.2009, 06:12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string *sp_kom;
int **mas, n, i,j, tur;
bool *kom, temp, y;
int main ()
{
    ifstream input("in_file.txt");
    ofstream output("out_file.txt");
    input>>n; 
    mas=new int*[n]; 
    for(i=0; i<n; i++)
       mas[i]=new int[n];
    kom=new bool[n];
    sp_kom=new string[n];
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
           mas[i][j]=0;
    for(i=0; i<n; i++)
    {
        input>>sp_kom[i];
        kom[i]=false;
        mas[i][i]=-1;
    }
    temp=true;
    tur=1;
    y=true;
    while(temp)
    {       
        temp=false;
        for(i=0; i<n; i++)
            kom[i]=false;
        for(i=0; i<n; i++)
            for(j=0; j<n; j++)
                if(mas[i][j]==0 && !kom[i] && !kom[j])
                {
                    if(y)
                    {
                        output<<tur<<"  òóð"<<endl;
                        y=false;
                    }
                    mas[i][j]=-1;
                    kom[i]=kom[j]=true;
                    temp=true;
                    if(i>j)
                        output<<sp_kom[i]<<" - "<<sp_kom[j]<<endl;
                    else
                        output<<sp_kom[j]<<" - "<<sp_kom[i]<<endl;
                }
        if(temp)
            output<<"---------------------"<<endl;
        y=true;
        tur++;
    }
 
    return 0; 
}
Входной файл выглядит так (первое значение - кол-во команд, затем названия самих команд:
4
ЦСКА
Зенит
Спартак
Локомотив

Да, еще учтите что на экране ничего не увидите.

Добавлено через 12 минут
Немного упустил - в строке 57 моего кода вставьте:
C++
1
input.close(); output.close()
1
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10
19.10.2009, 06:51  [ТС]
небольшая корректировочка
C++
1
input.close(); output.close();
точку с запятой ещё надо поставить
а так спасибо огромное!
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
19.10.2009, 13:22
Цитата Сообщение от SPV Посмотреть сообщение
точку с запятой ещё надо поставить
Это я набегу дописывал.
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 9
10.06.2010, 11:23
мне надо создать расписание на Java.Задача такая: Разработать программу для работы с БД, которая обеспечивает автоматизированную продажу авиабилетов на месяц вперед. Программа проверяет правильность каждой даты, делает возможным менять расписание. В типизированных файлах хранятся входные данные: номера рейсов, маршруты, количество свободных мест, дата вылета, ФИО.
При введении нового пункта расписания не разрешается вводить прошедшую дату (дата на данный момент времени высвечивается).
При покупке билета также проверяется дата и номер рейса. Не разрешается покупать билеты более, чем на месяц вперед.
заранее спасибо
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.06.2010, 11:24
anime, Java?
Вам сюда: https://www.cyberforum.ru/java/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2010, 11:24
Помогаю со студенческими работами здесь

Составление расписания в Delphi
Ребят, нужна помощь в Delphi. Много где искала человека, который сможет помочь с этой задачей. Все пишут, что это какая-то курсовая или...

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

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

Составление расписания для ВУЗА
Доброго времени суток, не могу разобраться с базой данных, взял у товарища БД, и начал ее перерабатывать под себя, и возникло несколько...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru