Системный подход в обучении программированию в среде EXCEL

Разделы: Информатика


Язык Visual Basic for Applications (VBA) используется для программирования приложений Microsoft Office. Он поддерживает современные технологии программирования и содержит специфические для каждого приложения объекты, в частности EXCEL.

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

При создании проекта используется один из трех методов:

  • запись макроса при помощи макрорекодера, с последующим его редактированием;
  • создание макроса в редакторе VBA;
  • создание проекта в редакторе VBA.

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

Задача 1. Записать макрос с именем СУММА, который заполняет ячейки А1:А22 целыми числами 1, 2, …, 20 и вычисляет их сумму в ячейке А21.

Пояснение к решению задачи.

Запустите в основном приложении средство автоматической записи макросов с помощью команды Сервис —> Макрос —> Начать Запись. Выполнив требуемые действия, остановите запись, нажав кнопку Остановить запись.

Задача 2. Создать макрос СБРОС, который удаляет значения из ячеек А1: А21.

Задача 3. Обеспечить удобный запуск макросов. Создать с помощью панели рисования две кнопки СУММА и СБРОС для уже созданных одноименных макросов.

Пояснение к решению задачи.

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

Задача 4. Обеспечить удобный запуск макросов. На листе EXCEL cоздать с помощью панели элементов управления две кнопки СУММА и СБРОС.

Пояснение к решению задачи.

В процедурах обработки нажатия на эти кнопки поместить вызов уже созданных одноименных макросов.

Задача 5. Создать тест для проверки знаний. В нем имеются две кнопки. При нажатии на кнопку “проверка” выдается сообщение о результате тестирования. При нажатии на кнопку “очистка” можно вновь повторить тестирование.

Пример оформления теста на листе EXCEL:

Тема: “Языки программирования высокого уровня”

Вопрос 1.

Переменная – это:

  • объект, способный принимать различные значения;
  • значения чисел;
  • меняющееся число.

Ваш ответ:

Вопрос 2. …………

Кнопка “проверка” Кнопка “очистка”

Задача 6. Создать тест, который занимает несколько листов. На первом листе поместить титульный лист для ввода информации о тестируемом. Каждый вопрос размещен на отдельном листе. На последнем листе помещается информация о прохождении теста по каждому вопросу. Перемещение по тесту реализовать с помощью кнопок. Установить защиту от внесения изменений.

Примечание. В тесте может быть как текстовая информация, так и графическая.

Задача 7. Создайте компьютерную игру, моделирующую игру “Быки-Коровы”. Смысл игры на рис.1

Рис. 1

Компьютер загадывает число из четырех цифр. Ваша задача отгадать число из 10 попыток. После каждой попытки компьютер выводит информацию о совпадении цифр введенного числа с загаданным. Бык означает, что цифра отгадана и стоит в нужной позиции. Корова означает, что цифра отгадана, но она стоит не в своей позиции. Кнопки для ввода цифр расположены на панели справа. Кнопка Новая игра инициирует новую игру. Кнопка Решение показывает загаданные цифры.

Пояснение к решению задачи.

Задача решается в 4 этапа:

  1. Ввод игрового поля и панели кнопок.
  2. Ввод текста программы в редактор Visual Basic.
  3. Назначение кнопкам панели макросов-подпрограмм.
  4. Отладка и тестирование программ.

Ниже представлен текст программы.

Задача 8. Создайте функции пользователя:

img1.gif (695 bytes)

Пояснение к решению задачи.

Пусть при работе с рабочей книгой пользователь часто использует функцию, заданную следующим образом:

Можно просто вводить формулу: =sin (ПИ ( ) *А1) *ЕХР (-2*А1).

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

Функции пользователя создаются на рабочем листе с названием модуль VBA, после чего с ними можно работать с помощью мастера функций. Для создания модуля VBA необходимо выбрать команду Сервис/Макрос/Редактор Visual Basic. Далее в открывшемся редакторе выбрать команду Вставить/Модуль. Теперь на вставленном листе модуля можно ввести текст следующей программы:

Function Y(x)

Y = sin (Application. Pi( ) * x) * Exp (-2 * x)

End Function

Функция Pi() в VBA возвращает значение постоянной Так как функция Pi() не является внутренней функцией VBA , то ее надо записать в форме Application. Pi( ).

По умолчанию созданная функция при выборе ее с помощью мастера функций относится к категории Определенные пользователем. Категорию можно изменить. При активном листе Модуль1, на котором введена функция У, нажмите диалоговое окно Просмотр объектов. При нажатии кнопки Параметры открывается диалоговое окно Параметры макроса. В этом окне в поле Описание введите текст комментария, например, Вспомогательная функция.

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

Теперь все готово для работы с функцией У. Пусть в ячейку А1 записано число 0,2 и нужно в В1 вычислить значение функции У при х = 0,2. Для этого в ячейку В1 нужно ввести формулу =У (А1). Это можно сделать и с помощью мастера функций.

Общий вид функции пользователя:

Function ИМЯ_ФУНКЦИИ (СПИСОК_ПАРАМЕТРОВ)

ТЕЛО_ФУНКЦИИ

End Function

Именем функции или переменной может быть любой идентификатор, определенный пользователем. Идентификатор – это последовательность букв, цифр и символа подчеркивания, начинающаяся с буквы. Пробелы внутри недопустимы, так же как цифры в начале. Пробелы заменяются символом подчеркивания, например, Date_Today_1.

Задача 8. Создайте функцию, вычисляющую по данной формуле один из трех элементов по двум заданным.

Объем пирамиды V = (1/3)* S0*h, где S0 – площадь основания пирамиды, h – высота.

Объем призмы V = S0*h, где S0 – площадь основания призмы, h – высота.

Площадь параллелограмма S = aha , где a – сторона, ha – высота к этой стороне.

Длина средней линии L = (1/2)*(a+b), где а, b – основания трапеции.

Задача 9. Создать компьютерную игру, моделирующую игру “Орел и Решка” рис.

 2.

Игрок вносит в банк определенную сумму денег. Во время игры нельзя добавлять деньги в банк. Игра состоит из последовательности шагов, которая может быть бесконечной. На очередном шаге и игрок загадывает либо орел, либо решку. Компьютер “бросает монету”. Если “монета падает той же стороной”, которую загадал игрок, то банк увеличивается на единицу, в противном случае – уменьшается на единицу. Игра заканчивается либо по желанию игрока, либо когда величина банка становится нулем или больше 10000. Игрок забирает себе содержимое банка. В приложении отслеживаются максимальные и минимальные суммы, которые были в банке в течение игры

Приложение создается в среде редактора Visual Basic. На форме создается требуемое диалоговое окно, далее для нее пишется код программы.

Задача 10. Разработайте приложение для “Игры в двенадцать”. Последовательно до трех раз бросается игральная кость. Игрок может бросить кость только один раз, или оценив результат первого броска – выполнить его во второй раз, или помня результаты двух предыдущих – бросить кость в третий раз. Все выпавшие очки суммируются. Если эта сумма 12 и более очков, то игрок проигрывает и игра заканчивается. Если сумма менее 12 очков, то в игру вступает компьютер. Компьютеру известно только то, что игрок набрал менее 12 очков. Компьютер, как и игрок, может совершать до трех попыток бросания игральной кости. Если он наберет 12 и более очков, то компьютер проигрывает. Если компьютер набирает менее 12 очков, то они сравниваются с очками игрока. Побеждает тот, у кого большая сумма очков.

Литература

  1. Гарнаев А.Ю. Самоучитель VBA. – СПб.: БХВ – Петербург, 2003. – 512с.: ил.
  2. Информатика в школе: Приложение к журналу “Информатика и образование”. № 2 – 2003. – М.: Образование и Информатика, 2003. – 160 с.
  3. Куправа Т.А. Excel/ Практическое руководство. – М.: “Диалог-МИФИ”, 2004. – 240 с.
  4. Малышев С.А. Самоучитель VBA. Как это делается в Word, Excel, Access. – СПб.: Наука и техника, 2001. – 496 стр. с ил.