Научная статья на тему 'Некоторые аспекты применения среды Visual Basic for Application для создания учебных приложений по математическим дисциплинам'

Некоторые аспекты применения среды Visual Basic for Application для создания учебных приложений по математическим дисциплинам Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
233
46
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТИЗАЦИЯ / МАТЕМАТИКА / АЛГОРИТМ / ГЕНЕРАЦИЯ / ВЕРИФИКАЦИЯ / МАКРОС / AUTOMATION / MATHEMATICS / ALGORITHM / GENERATION / VERIFICATION / MACRO

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лаптев Владимир Николаевич, Михайленко Евгений Владимирович

В статье описываются методы организации автоматизированной подготовки заданий по математическим и естественнонаучным дисциплинам с помощью макросов в среде Visual Basic for Application. Предлагаются алгоритмы генерации данных для задач, методы проверки выполненных работ

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лаптев Владимир Николаевич, Михайленко Евгений Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOME ASPECTS OF USING VISUAL BASIC FOR APPLICATION FOR CREATION EDUCATIONAL APPLICATIONS FOR mathematical disciplines

This article describes the methods of organizing an automated job preparation in mathematics and natural science disciplines with macros among Visual Basic for Application. Showing data generation algorithms for the problems, methods of testing the work performed

Текст научной работы на тему «Некоторые аспекты применения среды Visual Basic for Application для создания учебных приложений по математическим дисциплинам»

Научный журнал КубГАУ, №103(09), 2014 года

1

УДК 519.688

НЕКОТОРЫЕ АСПЕКТЫ ПРИМЕНЕНИЯ СРЕДЫ VISUAL BASIC FOR APPLICATION ДЛЯ СОЗДАНИЯ УЧЕБНЫХ ПРИЛОЖЕНИЙ ПО МАТЕМАТИЧЕСКИМ ДИСЦИПЛИНАМ

Лаптев Владимир Николаевич к.т.н., доцент

ФГБОУ «Кубанский государственный аграрный университет», 350044, Россия, г. Краснодар, ул. Калинина 13, E-mail: [email protected]

Михайленко Евгений Владимирович к.ф.-м.н., заместитель начальника кафедры ФГКОУ ВПО «Краснодарский университет МВД РФ»,350005, Россия, г. Краснодар, ул. Ярославская, 128, . E-mail: [email protected]

В статье описываются методы организации автоматизированной подготовки заданий по математическим и естественнонаучным дисциплинам с помощью макросов в среде Visual Basic for Application. Предлагаются алгоритмы генерации данных для задач, методы проверки выполненных работ

Ключевые слова: АВТОМАТИЗАЦИЯ, МАТЕМАТИКА, АЛГОРИТМ, ГЕНЕРАЦИЯ, ВЕРИФИКАЦИЯ, МАКРОС

UDC 519.688

SOME ASPECTS OF USING VISUAL BASIC FOR APPLICATION FOR CREATION EDUCATIONAL APPLICATIONS FOR MATHEMATICAL DISCIPLINES

Laptev Vladimir Nikolaevich Cand.Tech.Sci., associate professor Kuban State Agricultural university, 350044, Russia, Krasnodar, Kalinin st., 13, E-mail: [email protected]

Mikhaylenko Evgeny Vladimirovich Cand.Phys.-Math.Sci., Deputy Head of a Department Krasnodar University of Ministry of the Interior of Russian Federation, 350005 Russia, Krasnodar, Yaroslavl st. 128. E-mail: [email protected]

This article describes the methods of organizing an automated job preparation in mathematics and natural science disciplines with macros among Visual Basic for Application. Showing data generation algorithms for the problems, methods of testing the work performed

Keywords: AUTOMATION, MATHEMATICS, ALGORITHM, GENERATION, VERIFICATION, MACRO

При подготовке специалистов информационно-технических и экономических направлений для формирования общекультурных, профессиональных и профессионально-специализированных компетенций достаточно большое место уделяется изучению различных математических дисциплин. Особенность изучения таких дисциплин состоит в усвоении обучающимися теоретического материала, получаемого на лекциях, а также в приобретении устойчивых навыков решения типовых задач по каждой из изученных тем.

В статьях [1], [5], [7], [8] уже подняты вопросы оптимизации образовательного процесса с использованием информационных технологий. Настоящая статья является попыткой описать некоторые методические приемы и технологии использования возможностей среды Visual Basic for Application для создания учебных программ.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

2

Прежде всего, поясним, что выбор среды программирования не случаен. Нас как разработчиков привлек мощный математический аппарат VBA, доступность широких возможностей использования различных шрифтов, графических форм и объектов, простота и логичность синтаксиса и семантики языка. Не менее важным является доступность пакета программ Microsoft Office как для преподавателей, создающих исполняемые модули, так и для обучаемых. При написании программы использовались методы и технологии VBA, описанные в работах [2], [3], [4].

Основная идея описываемых технологий заключается в использовании приложения MS Office, где на заранее подготовленную форму автоматически по специальному алгоритму выводятся сгенерированные данные в виде комбинации чисел, символов или графических объектов. Приложением может быть, например, редактор MS Office Word, табличный процессор MS Excel или MS PowerPoint. Заполненную таким образом форму можно теперь довести до обучающегося: поместить файл с задачами на портале учебного заведения во время аудиторных занятий, отправить его по электронной почте или предоставить доступ к заданиям в облаке, организуя самостоятельную работу. Решая представленные задачи, обучаемый заполняет ответами предоставленный документ, сохраняет его, после чего отправляет документ для проверки. Затем работу открывает преподаватель. Используя макрос проверки, доступный только преподавателю, осуществляется компьютерная проверка выполненных заданий: автоматически зачеркиваются неверные ответы, подсчитываются набранные баллы, выставляется оценка за выполненную работу.

На рисунке 1 показан пустой шаблон без заданий на практическое занятие «Делимость чисел» по теме «Теория чисел» дисциплины математика.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

Рис.1 Лист с пустым шаблоном без заданий.

3

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

4

Для осуществления генерации заданий обучаемому необходимо заполнить поле «Фамилия и инициалы». Введенные им данные, а также дата и время запуска генерации, автоматически выводимые на лист, используются для расчета номера варианта. Ниже представлен алгоритм вычислений номера варианта, реализованный на VBA.

Function codeName(Name) k1 = 0

codeName = 0 For i = 1 To Len(Name) k = ((Asc(Mid(Name, i, 1)) - 192) Mod 32) * i If k > 0 Then

codeName = (codeName + k) Mod 1000 Else

Select Case Mid(Name, i, 1)

Case ”.”, ” ”, ”-”: k1 = k1 Case Else: k1 = 1 End Select End If

Next i

If k1 = 1 Then codeName = 0

End Function

v = timer Mod 31000 + codeName(Name)

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

«Вариант не соответствует фамилии и инициалам!».

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

5

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

' 1. Найти 6 делителей числа a

Do a = 1

For i = 1 To 4 a = a * Rnd(v) * 9 + 3 Next i

Loop Until a > 100 And a < 1000

t = " 1. Найти 6 делителей числа " + st(a) + "."

Cells(8, 1) = t

Cells(8, 1).Characters(13, 1).Font.ColorIndex = 3

Cells(8, 1).Characters(32, 3).Font.ColorIndex = 3

В показанном алгоритме в цикле Do ... loop until в диапазоне [100, 1000] определяется значение числа a . Как видно из программы, генерируемое значение задается псевдослучайным образом, используя в качестве параметра функции Rnd номер варианта v. Переменная а объявлена в начале программы, При использовании данного алгоритма количество целых делителей числа а всегда будет не менее шести. Затем в строковой переменной t составляется условие задания, и полученное выражение выводится в ячейку A8 рабочего листа. Две последних строки фрагмента программы определяют цвет шрифта выводимых числовых данных.

Генерация второго задания реализована линейным алгоритмом.

' 2. Найти 6 кратных числа a

a = Rnd(v) * 70 + 20

t = " 2. Найти 6 кратных числа " + st(a) + "."

Cells(13, 1) = t

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

6

Cells(13, 1).Characters(13, 1).Font.ColorIndex = 3

Cells(13, 1).Characters(29, 2).Font.ColorIndex = 3

В данном фрагменте значение переменной а определяется в диапазоне [20, 90].

При определении условий заданий 3.а и 3.б «Представить число a через натуральное число b в виде a = bq + r» генерируются одновременно параметры а, b , q и r . Покажем алгоритм данной генерации.

Do

b = Rnd(v) * 40 + 10 q = Rnd(v) * 20 + 10 r = Rnd(v) * (b - 2) + 1 a = b * q + r

Loop Until a < 1000

t = "a = ” + st(a) + ”; b = ” + st(b): Cells(20, 2) = t

Необходимо обратить внимание на то, что в данной структуре переменная r зависит от значения b , а для расчета числа а используются значения всех заданные ранее значений.

Четвертое задание «4. Применяя метод Евклида, найти НОД чисел и выписать 5 первых остатков» посвящено использованию алгоритма Евклида для нахождения наибольшего общего делителя двух чисел.

Do

nod = Rnd(v) * 20 + 15: a = nod: r = 0 For i = 1 To 6 b = a

If i = 1 Then q = Rnd(v) * 3 + 2 Else q = Rnd(v) * 4 + 1 a = b * q + r r = b Next i

Loop Until a > 1000 And b < 1000

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

7

t = ”(” + st(b) + ”, ” + st(a) + ”) = ”: Cells(25, 4) = t Следует заметить, что фрагмент программы выполняет преобразования обратные алгоритму Евклида [5]. Представленный алгоритм реализован в виде двух вложенных циклов. Сначала определяется наименьший общий делитель nod , затем в цикле For ... Next на каждом из шести шагов итерационного процесса переменой b присваивается значение a, генерируются частные q, по формуле a = bq + r увеличивается коэффициент a, а остаток от деления r становится равным b . Циклический процесс продолжается до тех пор, пока не выполнится конъюнкция условий a > 1000 And b < 1000 . Представленный алгоритм гарантирует ненулевые остатки при делении a на b . Кроме того, в процессе формирования чисел мы получим и все промежуточное значения r , которые могут быть использованы при проверке заполненной обучающимся формы.

При генерации задания «5. Выписать все простые числа из промежутка .. » определение значений границ [a,b] осуществляется достаточно просто и приводить полностью программный код для этого задания мы не будем. Однако отметим, что необходимо провести проверку на то, чтобы такие простые числа нашлись. n=0

For i = a To b m = 0

For j = 2 To Sqr(i)

If i Mod j = 0 Then m = m + 1 Next j

If m = 0 Then n=n+1 Next i

Данный фрагмент программы подсчитывает количество простых чисел. Поэтому целесообразно повторять процесс генерации границ интерва-

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

8

ла до тех пор, пока в результате очередной итерации количество простых чисел n не будет находиться в разумных пределах.

Расчет параметров шестого задания «Записать каноническое представление чисел» основан на определении количества простых множителей, входящих в канонические представления получаемых чисел. Для того, чтобы отображаемые значения находились в разумных пределах, можно брать только множители 2, 3, 5, 7, 11, 13, 17 с соответствующими степенями s2, s3 , s5 , s7, s11, s13 , s17 . Однако в отображенном ниже алгоритме процесс подбора степеней повторяется пока не выполнится условие а є [2000, 20000].

Do

s2 = Rnd(v) * 5 s3 = Rnd(v) * 4 s5 = Rnd(v) * 3 s7 = Rnd(v) * 2 s11 = Rnd(v) * 2 s13 = Rnd(v) * 2 s17 = Rnd(v) * 2

a = 2 л s2 * 3 л s3 * 5 л s5 * 7 л s7 * 11 л s11 * 13 л s13 * 17 * s17

Loop Until a < 20000 And a > 20000

В задании «7. Используя канонические разложения чисел, найти НОК и НОД» процесс нахождения а и b начинается с определения наибольшего общего делителя nod этих двух чисел. Алгоритмическая структура основана на обратном ходе метода Евклида. Она будет повторяться неоднократно до тех пор, пока в результате очередной итерации одновременно не выполнятся условия а > 1000 и b < 1000 .

Do

nod = Rnd(v) * 20 + 15 а = nod

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9

г = 0

For i = 1 To 6 b = a

If i = 1 Then q = Rnd(v) * 3 + 2 Else q = Rnd(v) * 4 + 1 a = b * q + r r = b Next i

Loop Until a > 1000 And b < 1000

Генерация заданий «8. Найти канонические разложения факториалов» и «9. Найти количество делителей t и сумму делителей s чисел» не представляет особой сложности. Выводимые числа определяются в заданных промежутках, и особых ограничений для их расчета нет. Например, для генерации числа n є [a, b] можно использовать запись

n = Rnd(v) * (b - a) + a

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

На рисунке 2 отображен лист со сгенерированными задачами. После вывода на лист всех заданий лист защищается. Каждая работа, сгенерированная подобным образом, \является уникальной, так как число вариантов работ достигает 32000. При необходимости можно изменить алгоритм обработки времени и идентификационных записей и увеличить количество вариантов.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

10

Теория чисел

Практическое задание Делимость чисел

Дата

Время

11.11.2014

15:09:20

Иванов Л.В.

; Фамилия И. О.)

В ai

ізиант

23765

1. Найти 6 делителей числа 399.

делители:

2. Найти 6 кратных числа 22.

кратные:

3. Представить нелое число л через число і в виде л = bq + г (0 < г < Ь).

а) а = 512; Ъ =

б) а = 566; Ъ = 25

4. Применяя метод Евклида, найти НОД чисел и выписать 5 первых остатков.

a) (864,2394) = | | п=[ 1 1 1 1 1 1 1 1

П = [

г?

б) (Ш 2,944) =

г-. =

|гз =1

кз = |

ir+ = i

\ч = \

г-

г. =

5. Выписать все простые числа из промежутка [167; 201].

6. Записать каноническое представление чисел.

а) 8415 =

б) 10472 =

7. Используя канонические разложения чисел найти нх НОД и НОК.

а) (736,4304) =

б) (810,2727) =

[736,4304] =

[810, 2727] =

S. Найти каноническое разложения факториалов.

ЛЛ| =

а)

б) 34! =

9. Найти количество делителей т и сумму делителей о чисел.

<29) =

<<29) =

<184) = г(589) = <1073)=

сг(184) = сг(589) = сг(1073) =

Критерий оценки:

31-33 баллов - "отлично"

26-30баллов - "хорошо"

22-23 баллов - "уловлетворлтгльно" менгг22 баллов - "нгуловлгтворнтвльно"

Количество наорэнных оэллое: Оценка ва paooTv:

Проверка

Рис.2 Лист после вывода в шаблон сгенерированных заданий.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

11

Проверка выполненных работ осуществляется преподавателем либо самим курсантом. Для проверки создается специальный макрос, анализирующий заполненные обучающимся поля. Для проверки работ самими курсантами файл с проверкой временно помещается в специальную защищенную от просмотра и копирования область на сервере кафедры и автоматически удаляется после окончания каждой пары. Определяя вариант работы, программа заново генерирует все исходные данные, на основе их рассчитывает решение задачи. В ряде случаев, таких как приведенный пример, решение некоторых задач уже известно. Значения каждого поля сравниваются решением. Если заполненные поля удовлетворяют запросам программы, за каждое верное решение начисляются баллы, в противном случае поля зачеркиваются. Оценивание работы происходит согласно критерию, описанного в нижней левой части листа.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Лаптев В.Н. К алгоритму усвоения знаний, умений и навыков на базе информационных технологий / В.Н. Лаптев, И.А. Василенко. Научный журнал КубГАУ. [Электронный ресурс]. - Краснодар: КубГАУ, 2009. №43(09). - 16с. http://ej.kubagro/2009/09/pdf/07 pdf.

2. Кузьменко В.Г. VBA. - М.: ООО «Бином-Пресс», 2012.Михайленко Е.В. Информатика: учебное пособие / Е.В. Михайленко, И.Н. Старостенко, Ю.Н. Сопильняк. - Краснодар: Краснодарский университет МВД России, 2010.

3. Михайленко Е.В. Математика и информатика: курс лекций / Е.В. Михайленко, И.Н. Старостенко. - Краснодар: Краснодарский университет МВД России, 2009.

4. Михайленко Е.В. Математические модели рейтинговых методик. / Вестник Краснодарской академии МВД России. - Краснодар: Краснодарская академия МВД России, 2005, №2, С. 7-10.

5. Михайленко Е.В. Прикладная математика: курс лекций / Е.В. Михайленко, А.А. Хромых. - Краснодар: Краснодарский университет МВД России, 2014.

6. Михайленко Е.В. Создание автоматизированной системы для ведения мониторинга работы профессорско-преподавательского состава. / Математические методы и информационно-технические средства: труды VI Всерос. науч.-практ. конф. - Краснодар: Краснодарский университет МВД России, 2008, С. 147-149.

7. Старостенко И.Н. О некоторых аспектах оптимизации образовательного процесса с использованием информационных технологий. / Математические методы и информационно-технические средства: труды VI Всерос. науч.-практ. конф. - Краснодар: Краснодарский университет МВД России, 2010, С. 183-189.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

Научный журнал КубГАУ, №103(09), 2014 года

12

References

1. Laptev V.N. K algoritmu usvoenija znanij, umenij i navykov na baze informacion-nyh tehnologij / V.N. Laptev, I.A. Vasilenko. Nauchnyj zhurnal KubGAU. [Jelektron-nyj resurs]. - Krasnodar: KubGAU, 2009. №43(09). - 16s. http://ej.kubagro/2009/09/pdf/07 pdf.

2. Kuz'menko V.G. VBA. - M.: OOO «Binom-Press», 2012.Mihajlenko E.V. Informati-ka: uchebnoe posobie / E.V. Mihajlenko, I.N. Starostenko, Ju.N. Sopil'njak. - Krasno-dar: Krasnodarskij universitet MVD Rossii, 2010.

3. Mihajlenko E.V. Matematika i informatika: kurs lekcij / E.V. Mihajlenko, I.N. Starostenko. - Krasnodar: Krasnodarskij universitet MVD Rossii, 2009.

4. Mihajlenko E.V. Matematicheskie modeli rejtingovyh metodik. / Vestnik Krasno-darskoj akademii MVD Rossii. - Krasnodar: Krasnodarskaja akademija MVD Rossii, 2005, №2, S. 7-10.

5. Mihajlenko E.V. Prikladnaja matematika: kurs lekcij / E.V. Mihajlenko, A.A. Hromyh. - Krasnodar: Krasnodarskij universitet MVD Rossii, 2014.

6. Mihajlenko E.V. Sozdanie avtomatizirovannoj sistemy dlja vedenija monitoringa raboty professorsko-prepodavatel'skogo sostava. / Matematicheskie metody i infor-macionno-tehnicheskie sredstva: trudy VI Vseros. nauch.-prakt. konf. - Krasnodar: Krasnodarskij universitet MVD Rossii, 2008, S. 147-149.

7. Starostenko I.N. O nekotoryh aspektah optimizacii obrazovatel'nogo processa s ispol'zovaniem informacionnyh tehnologij. / Matematicheskie metody i informa-cionno-tehnicheskie sredstva: trudy VI Vseros. nauch.-prakt. konf. - Krasnodar: Kras-nodarskij universitet MVD Rossii, 2010, S. 183-189.

http://ej.kubagro.ru/2014/09/pdf/14.pdf

i Надоели баннеры? Вы всегда можете отключить рекламу.