Министерство образования и науки Российской Федерации.
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования «Кузбасского Государственного Технического Университета имени Т.Ф. Горбачёва»
Кафедра: Информационных и Автоматизированных
производственных систем
«Пояснительная записка к курсовому проекту по информатике»
Выполнил(а):
Преподаватель:
Алексеева Г.А
Кемерово 2016
Содержание
Исходные данные 3
Текстовое описание алгоритма 4
Исходный код 6
Переменные используемые для решения задачи 11
Блок-схема 12
Пример работы программы 20
Инструкция 21
Исходные данные
В чемпионате России по хоккею участвуют 24 команды, разбитые на 2 группы, игры проходят в группах в 2 круга (лома и в гостях). Места в группах определяются по следующим показателям а) количество набранных очков: б) разность забитых и пропущенных шайб: в) наибольшему числу побед; г) результатам игр между собой.
Затем первые 8 команд каждой группы участвуют в Play Off (Игры на вылет) следующим образом: в одной восьмой финала первые команды играют с восьмыми из другой группы, вторые места - с седьмыми местами ш другой группы и т.д. Затем проводится одна четвертая финала, полуфинал и финал, причем на этих этапах пары команд определяются жребием. Матчи в 1/ 8 финала играются до 2-х побед одной из команд, в 1/4 и 1/2 финала - до 3-х побед, финал - до 4х побед. Провести чемпионат России по хоккею.
Текстовое описание алгоритма
Объявляем пользовательский тип accountTeam, для хранения информации о результатах команды со следующими полями:
Name As String ' имя
Score As Integer ' забито
Missing As Integer ' пропущено
Winn As Integer ' побед
Difer As Integer ' разница=забито-пропущено
Points As Integer 'забито+2 балла за каждую победу
Объявляем константу n для хранения числа команд
Создаем массив accountTeamTable() нашего типа данных для
В основной процедуре Solution() объявляем следующие переменные(описание см. в п. 4): i, j, k, l, x, p, q, sumWin1, sumWin2, m, start, random1, random2, toRight, counter, rowCount As Integer, s As String
указываем размер массива accountTeamTable
заполняем массив accountTeamTable данными с первого столбца второго листа
выбираем 1 лист рабочей книги
очищаем 1 лист
устанавливаем начальные значения переменных счетчиков
через 3 вложеных цикла заполняем по горизантали и вертикали значения ячеек и рисуем рамки таблиц, на первом листе.
Через три вложеных цикла заполняем счет в каждой ячейки. для получения случайного числа используем функцию getRandom(), в которую передаем целое число, которое определяет верхнюю границу генерации случайного.
В случае если у нас счетчик строк и счетчик столбцов равны заполняем ячейку "---". В ином случае пишем счет через «:»
после заполнения ячейки в поле Score массива accountTeamTable заносим число забитых, которое получаем из вызова функции parseAccount, в которую в качестве параметров передаем строку и число, если 1 – получить забитые, 2- получить пропущенные. Аналогично поступаем с числом пропущенных
Разницу между пропущенными и забитыми по модулю заносим в поле Difer
через 4 вложеных цикла посчитаем число побед Win и общее число очков Points.
Найдем по 8 команд из каждой группы
вызываем процедуру сортировки первой части массива(от 0 до 12) sortInsrt, в качестве параметов передадим в нее массив accountTeamTable, количество элементов которые нужно отсортировать – n/2, и начало элементов для первой группы-0, для второй 12. Сортируем по полю Points, методом вставок
вызываем процедуру defWinner в которую передаем те же параметры, что и в sortInsrt. В этой процедре мы определяем победителя по указаным в задании параметрам, после чего заносим результаты во второй столбец второго листа
аналогично поступаем для второй части массива(второй группы).
Выбираем 3 лист
присваиваем начальные значения переменным
через 3 вложеных цикла разыгрываем 1/8, ¼, ½ финала
указываем размер массива accountTeamTable в зависимости от числа команд
со второго столбца и нужного столбца заполняем массив
пишем заголовок
заполняем правую и левую части таблицы
ищем победителей
вызываем процедуру nWinn, в которую передаем две переменные по ссылке, и число – разницу между победами(числами). Полученые числа сравниваем между собой в зависимости от результа пишем m или I команду на второй лист в нужный столбец.
финал происходит аналогично пунктам 3.2.3 -3.2.5.1 . в конце выводим сообщение о победителе.
