Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»





Скачать 493.14 Kb.
НазваниеФедеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»
страница4/11
Дата публикации20.08.2013
Размер493.14 Kb.
ТипПояснительная записка
100-bal.ru > Информатика > Пояснительная записка
1   2   3   4   5   6   7   8   9   10   11

Реализация

  1. Алгоритм


Реализация алгоритма описана в классе KaratsubaTenBaseSolver, показанном на рисунке 4.1.



Рисунок 4.1 – Класс с реализацией решения

Массив s_powersOfTen содержит набор чисел, таких, что число по заданному индексу являетяся двойкой в степени индекса. Это сделано для того, чтобы ускорить вычисление больших степеней двоек [3].

Метод Multiply принимает два числа, которые необходимо перемножить. Максимальная разрядность этих чисел – 64 бита, от 0 до 18 446 744 073 709 551 615. Метод передаёт эти числа другому методу, MultiplyInner, с указанием большей длины одного из этих двух чисел.

Метод MultiplyInner осуществляет рекурсивное умножение по формуле (2.21), учитывая возможное переполнение согласно (2.21) путём вызова метода MultiplyOverflow.

Метод MultiplyOverflow перемножает два числа с учётом переполнения.


    1. Анализ решения и ответа


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

При выполнении решения методами MultiplyInner и MultiplyOverflow выполняется логгирование действий. Они вызывают для логгирования методы AddVarStep и AddBasicStep, которые добавляют в коллекцию шагов _steps решения очередной шаг.

Класс для хранения одного шага решения показан на рисунке 4.2. Экземпляры этого класса, в свою очередь, хранятся в коллекции _steps.



Рисунок 4.2 – Один шаг решения

Поле OpType принимает значение соответствующего типа операции из справочника операций _opTypes в классе FormMain.cs. Тип операции означает, какое по разрядности умножение выполняется на текущем шаге и сколько переполнений на этом шаге.
Метод AddBasicStep добавляет шаг, обозначающий очередной шаг рекурсии. Например, этот метод мог бы добавить шаг, указанный в таблице 4.1.

Таблица 4.1 – Пример шага решения

VariableName

"x*y"

Result

"(a*10^k+b)(c*10^k+d)"

Expression

"1194*7743"

OpType

4-разрядное, 0 переполнений

ExpressionEditable

false

ExpressionVisible

true

ResultVisible

true

ResultEditable

true


Набор перегруженных методов AddVarStep добавляет в коллекцию шагов решения одну переменную и значение, содержащееся в ней.

Например, метод AddVarStep мог бы добавить шаг, указанный в таблице 4.2.

Таблица 4.2 – Пример шага решения

VariableName

"a"

Result

"11"

Expression

""

OpType

-

ExpressionEditable

false

ExpressionVisible

false

ResultVisible

false

ResultEditable

true


Класс FormMain, изображённый на рисунке 4.3, реализует главное окно приложения. Он отвечает за отображение полей, ввод в эти поля, вспомогательную подсветку полей в зависимости от режима работы, а также сравнение введённого пользователем решения с вычисленным решением и вычисление оценки.

Этот класс генерирует случайным образом два числа, передавая их затем экземпляру KaratsubaTenBaseSolver под названием _karatsuba. Затем он обновляет все поля диалога, приводя их в стартовое состояние путём вызова StartTest, и предлагает пользователю пошагово ввести решение и ответ, отображая соответствующие поля для ввода с подсказками о вводе.


Рисунок 4.3 – Класс FormMain
На рисунке 4.4 показан класс, представляющий собой поле для ввода одной строки решения. Он состоит из поля varStep, в котором отображается текущий шаг, поля exprStep, в котором необходимо ввести выражение, если оно нужно на текущем шаге, и поля resultStep, в котором нужно ввести результат шага. Данные в ControlStep попадают из соответствующего экземпляра SolverStep.



Рисунок 4.4 – Класс ControlStep

Класс FormMain содержит коллекцию ControlStep’ов в списке контролов у tableLayoutPanelSteps.
В режиме тестирования при запуске нового теста устанавливается время, которое отводится на решение задачи – 30 минут.

Член класса timerTimeout – это таймер, который запускается каждую секунду. При срабатывании таймера выполняется событие timerTimeout_Tick, в котором происходит обновление часов outTimeLeft, показываемых пользователю, а также проверка, не закончилось ли время. Если время вышло, то происходит проверка решения и ответа путём вызова CheckAnswer.

Также проверка решения и ответа происходит, когда пользователь нажимает кнопку «Проверить ответ» до истечения времени; при этом также вызывается метод CheckAnswer.

В методе CheckAnswer происходит проверка решения и ответа. Данные в полях формы (введённые пользователем) сравниваются с соответствующими данными в коллекции _solverSteps, и на основе этого сравнения вычисляется оценка.

Алгоритм вычисления оценки следующий.

Максимальное количество баллов – 10.

За неправильный ответ в поле «Ответ» вычитается два балла.

За каждый неправильный шаг решения вычитается число, равное единице, поделенной на общее количество шагов.

Итоговое число округляется до меньшего целого числа.
Класс FormSetNumbers, показанный на рисунке 4.5, представляет собой диалоговое окно, предоставляющее возможность выбора или ввода чисел для перемножения пользователем. Вызов этой формы возможен только в режиме обучения. Форма вызывается в методе главного окна cmdRestart_Click.



Рисунок 4.5 – Класс FormSetNumbers

Кнопка cmdGenerate при нажатии генерирует событие cmdSet_Click, в котором путём вызова FormMain.GenerateNumbers получаются и вставляются в поля inValue1 и inValue2 два случайных числа. Также возможно ввести туда числа самостоятельно.

После закрытия этой формы главное окно начинает тестирование заново путём вызова StartTest, используя эти новые числа.
Метод главного окна menuChangeMode_Click снова вызывает показ окна FormLogin, позволяя сменить режим или имя пользователя. После этого главное окно останавливает тест и заново его начинает, генерируя случайные числа, очищая поля ввода и вызывая метод StartTest.


1   2   3   4   5   6   7   8   9   10   11

Похожие:

Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство связи Государственное образовательное учреждение...
Программа составлена в соответствии с требованиями Федерального государственного образовательного стандарта начального общего образования...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство связи Государственное образовательное учреждение...
Когда умцик накопил достаточный опыт и достиг наглядных результатов в практической и научной деятельности, Министерство здравоохранения...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное государственное образовательное бюджетное учреждение...
...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconРабочая программа дисциплины «Информатика»
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Поволжский государственный...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию федеральное государственное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство воздушного транспорта федеральное государственное...
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию федеральное государственное...
Изотова Елена Анатольевна – учитель биологии муниципальной средней общеобразовательной школы №1 г. Галича
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию государственное образовательное...
Государственное образовательное учреждение высшего профессионального образования «Ставропольская государственная медицинская академия»...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию федеральное государственное...
«Теория и практика благотворительной помощи университетам. Зарубежный опыт», выполняемому в рамках «Программы развития сфу на 2007–2010...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconНир научно-исследовательская работа
Университет – Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Сибирский государственный...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство воздушного транспорта московский государственный...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство связи федеральное государственное образовательное...
Университете системы равноправных отношений между студентами, сотрудниками вуза и его администрацией, принимает настоящий Этический...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию государственное образовательное...
Утверждены: Ученым советом Федеральным государственным бюджетным образовательным учреждением высшего профессионального образования...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию государственное образовательное...
Утверждены: Ученым советом Федеральным государственным бюджетным образовательным учреждением высшего профессионального образования...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconРоссийской Федерации Федеральное агентство по рыболовству Федеральное...
Г. Г., Авдеева Е. В., Шеховцев Л. Н., Шибаев С. В., Орлов Е. К., Уманский С. А. Калининград: Федеральное государственное бюджетное...
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» iconФедеральное агентство по образованию и науке РФ федеральное государственное...
Форма обучения – очная, заочная, заочная (сокращенная) на базе впо, очно-заочная (вечерняя) на базе спо


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск