Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 19

Учет результатов велогонки

21.02.2013, 14:43. Показов 1605. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача: В велогонке участвуют 6 гонщиков из каждой страны. Велогонка проходит в N этапов. Место на этапе определяется по наименьшему сумарному времени 4-х лучших гонщиков этой страны на этом этапе. Место страны в итоговом протоколе определяется по наименьшей сумме мест, занятых страной на этапах.
Есть форма(На картинке).При нажатии на кнопку "Расчитать" происходит вычисление задачи. Но это форма только для 1 этапа. Как лучше сделать форму, на несколько этапов тем более что их кол-во неизвестно? А то моя фантазия иссякла...
P.S Возможно вопрос не по теме, но помогите кто чем может...
Миниатюры
Учет результатов велогонки  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2013, 14:43
Ответы с готовыми решениями:

Как упростить код модели велогонки?
Для тренировки пытаюсь описать модель велогонки. Немного написал кода. Можете посоветовать как упростить, улучшить код, что-то придумать, а...

Учет средств измерения (учет приборов для метрологов)
Доброго всем времени суток. Столкнулся с такой проблемой как учет средств измерения (приборы КИПиА), раньше их было несколько десятков и...

Вычитание результатов одного запроса из результатов другого
Есть 2 запроса,подскажите возможно ли вычесть одно из второго

4
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
22.02.2013, 08:17
Можно решить примерно так, не претендую на эталон решения.
Для отображения результатов по этапам велогонки предлагаю создать элемент combobox с возможностью выбора интересующего этапа велогонки.
Создаем переменные которые будем использовать в дальнейшем:
C#
1
2
3
4
5
6
7
        //Количество попыток
        int n = 5;
        //Массив со странами
        string[] nameCountry = { "Уругвай", "Парагвай" };
        //Будем генерировать результаты
        //Первоночально создадим вручную несколько массивов для каждой попытки
        int[, ,] itog;
Используется для хранения информации о проведении велогонки 3х мерный массив:
- первое значение - номер этапа;
- второе значение - страна;
- третье значение - результаты велогонки и расчетные показатели.

Заполним массив результатов случайными значениями:
Кликните здесь для просмотра всего текста
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
            itog = new int[n, nameCountry.Length, 11];
 
            Random r = new Random();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < nameCountry.Length; j++)
                    for (int k = 1; k < 6; k++)
                    {
                        itog[i, j, k] = r.Next(1, 5);
                    }
                //Заполнение времени данного этапа велогонки по суммарному времени 4-х лучших гонщиков
                for (int j = 0; j < nameCountry.Length; j++)
                {
                    itog[i, j, 6] = lavelCountry(i, j);
                    itog[i, j, 7] = 0; //Функция расчета места
                }
            }
 
            //Заполнение итогового времени по наименьшей сумме затраченного времени
            //заполняется не по местам, а по времени, т.к. расчет мест не реализован
            for (int i = 0; i < n; i++)
                for (int j = 0; j < nameCountry.Length; j++)
                {
                    itog[i, j, 8] = lavelCountryBest(i, j);
                    itog[i, j, 9] = 0; //Функция расчета места
                }

Вспомогательные методы для расчетов:
Кликните здесь для просмотра всего текста
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
        //Метод вычисления места в текущем "забеге"
        private int lavelCountry(int _numberLavel, int _nubmerCountry)
        {
            int[] bestTimeCountry = new int[6];
            bestTimeCountry[0] = itog[_numberLavel, _nubmerCountry, 0];
            bestTimeCountry[1] = itog[_numberLavel, _nubmerCountry, 1];
            bestTimeCountry[2] = itog[_numberLavel, _nubmerCountry, 2];
            bestTimeCountry[3] = itog[_numberLavel, _nubmerCountry, 3];
            bestTimeCountry[4] = itog[_numberLavel, _nubmerCountry, 4];
            bestTimeCountry[5] = itog[_numberLavel, _nubmerCountry, 5];
            Array.Sort(bestTimeCountry);
            return bestTimeCountry[0] + bestTimeCountry[1] + bestTimeCountry[2] + bestTimeCountry[3];
        }
 
        //Метод возвращает итоговоем место страны в общем забеге
        private int lavelCountryBest(int _numberLavel, int _nubmerCountry)
        {
            int bestTime = 0;
            for (int i = 0; i <= _numberLavel; i++)
            {
                bestTime += itog[i, _nubmerCountry, 6];
            }
            return bestTime;
        }
Миниатюры
Учет результатов велогонки  
Вложения
Тип файла: zip Velogonka.zip (39.3 Кб, 15 просмотров)
1
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 19
22.02.2013, 14:15  [ТС]
Немного не то, но Спасибо тоже очень помог.
0
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
26.03.2013, 20:35
Вот еще 2 метода, для подсчета занимаемых мест:
LavelAllBest, LavelOne
Кликните здесь для просмотра всего текста
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
        private int LavelOne(int numberLavel, int j)
        {
            int[] arr = new int[dataGridView1.RowCount - 1];
            int[] index = new int[dataGridView1.RowCount - 1];
            //Составляем массив времени
            for (int i = 0; i < arr.Length; i++)
                arr[i] = Convert.ToInt32(dataGridView1.Rows[i].Cells[6].Value.ToString());
 
            int[] a = (int[])arr.Clone();
 
            #region Создаем вспомогательные массивы
            //Массив упорядоченных индексов
            //Вспомогательный массив для сортировки
 
            for (int i = 0; i < index.Length; i++)
            {
                index[i] = i+1;
            }
            #endregion
 
 
            #region Вычисление порядка следования элементов массива
            bool flag = true;
            while (flag)
            {
                flag = false;
                for (int i = 0; i < index.Length - 1; i++)
                    if (a[i] > a[i + 1])
                    {
                        int b = a[i];
                        a[i] = a[i + 1];
                        a[i + 1] = b;
 
                        b = index[i];
                        index[i] = index[i + 1];
                        index[i + 1] = b;
                        
                        flag = true;
                    }
            }
            #endregion
            return index[j];
        }
        private int LavelAllBest(int _numberLavel, int _nubmerCountry)
        {
            int bestTime = 0;
            for (int i = 0; i <= _numberLavel; i++)
            {
                bestTime += itog[i, _nubmerCountry, 7];
            }
            return bestTime;
        }
Вложения
Тип файла: zip Velogonka.zip (85.7 Кб, 25 просмотров)
1
1 / 1 / 0
Регистрация: 12.09.2021
Сообщений: 3
17.07.2022, 22:32
Приветствую, я пишу похожую задачу но на js. Можно посмотреть код этой задачи, если она полностью завершена? С несколькими функциями проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2022, 22:32
Помогаю со студенческими работами здесь

Учет
Подскажите пожалуйста, что лучше поставить в офисе на 15 машин. ------- 1)Usergate 2)Traffic Inspector ------- Windows Sever...

БД Учет ПО
Добрый день, Я работаю над курсовой по теме Учет программного обеспечения. У меня уже создано несколько таблиц, нужно ли добавить ещё...

Учет ПО
Всем добрый вечер, пишу диплом на тему &quot;учёт программного обеспечения&quot; Сделала таблички, закинула на форму, прописала базовые функции...

Учет
Всем helllo!!! У мя вопорс надосоздать Базу Данных Учет ГСМ (приход и расход топлива, списание топлива по путевым листам ... нода сделать...

учет переработки
Люди , подскажите можно ли таблицу в Экселе как - нибудь синхронизировать с календарем, что рассчитывать рабочее время и переработку л/с?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru