Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBAпример1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
759.33 Кб
Скачать

Министерство образования и науки Российской Федерации.

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования «Кузбасского Государственного Технического Университета имени Т.Ф. Горбачёва»

Кафедра: Информационных и Автоматизированных

производственных систем

«Пояснительная записка к курсовому проекту по информатике»

Выполнил(а):

Преподаватель:

Алексеева Г.А

Кемерово 2016

Содержание

  1. Исходные данные 3

  2. Текстовое описание алгоритма 4

  3. Исходный код 6

  4. Переменные используемые для решения задачи 11

  5. Блок-схема 12

  6. Пример работы программы 20

  7. Инструкция 21

  1. Исходные данные

В чемпионате России по хоккею участвуют 24 команды, разбитые на 2 группы, игры проходят в группах в 2 круга (лома и в гостях). Места в группах определяются по следующим показателям а) количество набранных очков: б) разность забитых и пропущенных шайб: в) наибольшему числу побед; г) результатам игр между собой.

Затем первые 8 команд каждой группы участвуют в Play Off (Игры на вылет) следующим образом: в одной восьмой финала первые команды играют с восьмыми из другой группы, вторые места - с седьмыми местами ш другой группы и т.д. Затем проводится одна четвертая финала, полуфинал и финал, причем на этих этапах пары команд определяются жребием. Матчи в 1/ 8 финала играются до 2-х побед одной из команд, в 1/4 и 1/2 финала - до 3-х побед, финал - до 4х побед. Провести чемпионат России по хоккею.

  1. Текстовое описание алгоритма

  1. Объявляем пользовательский тип accountTeam, для хранения информации о результатах команды со следующими полями:

Name As String ' имя

Score As Integer ' забито

Missing As Integer ' пропущено

Winn As Integer ' побед

Difer As Integer ' разница=забито-пропущено

Points As Integer 'забито+2 балла за каждую победу

    1. Объявляем константу n для хранения числа команд

    2. Создаем массив accountTeamTable() нашего типа данных для

  1. В основной процедуре Solution() объявляем следующие переменные(описание см. в п. 4): i, j, k, l, x, p, q, sumWin1, sumWin2, m, start, random1, random2, toRight, counter, rowCount As Integer, s As String

    1. указываем размер массива accountTeamTable

    2. заполняем массив accountTeamTable данными с первого столбца второго листа

    3. выбираем 1 лист рабочей книги

    4. очищаем 1 лист

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

    6. через 3 вложеных цикла заполняем по горизантали и вертикали значения ячеек и рисуем рамки таблиц, на первом листе.

    7. Через три вложеных цикла заполняем счет в каждой ячейки. для получения случайного числа используем функцию getRandom(), в которую передаем целое число, которое определяет верхнюю границу генерации случайного.

      1. В случае если у нас счетчик строк и счетчик столбцов равны заполняем ячейку "---". В ином случае пишем счет через «:»

      2. после заполнения ячейки в поле Score массива accountTeamTable заносим число забитых, которое получаем из вызова функции parseAccount, в которую в качестве параметров передаем строку и число, если 1 – получить забитые, 2- получить пропущенные. Аналогично поступаем с числом пропущенных

      3. Разницу между пропущенными и забитыми по модулю заносим в поле Difer

    8. через 4 вложеных цикла посчитаем число побед Win и общее число очков Points.

    9. Найдем по 8 команд из каждой группы

      1. вызываем процедуру сортировки первой части массива(от 0 до 12) sortInsrt, в качестве параметов передадим в нее массив accountTeamTable, количество элементов которые нужно отсортировать – n/2, и начало элементов для первой группы-0, для второй 12. Сортируем по полю Points, методом вставок

      2. вызываем процедуру defWinner в которую передаем те же параметры, что и в sortInsrt. В этой процедре мы определяем победителя по указаным в задании параметрам, после чего заносим результаты во второй столбец второго листа

      3. аналогично поступаем для второй части массива(второй группы).

  2. Выбираем 3 лист

    1. присваиваем начальные значения переменным

    2. через 3 вложеных цикла разыгрываем 1/8, ¼, ½ финала

      1. указываем размер массива accountTeamTable в зависимости от числа команд

      2. со второго столбца и нужного столбца заполняем массив

      3. пишем заголовок

      4. заполняем правую и левую части таблицы

      5. ищем победителей

        1. вызываем процедуру nWinn, в которую передаем две переменные по ссылке, и число – разницу между победами(числами). Полученые числа сравниваем между собой в зависимости от результа пишем m или I команду на второй лист в нужный столбец.

    3. финал происходит аналогично пунктам 3.2.3 -3.2.5.1 . в конце выводим сообщение о победителе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]