СПО в российских школах

Команда ALT Linux рассказывает о внедрении свободного программного обеспечения в школах России
Май 24, 2013

Пример создания макроса в LibreOffice 3

Методические материалы
Автор: Владимир Черный

Автор предлагаемой ниже статьи, преподаватель информатики КГБОУ СПО «Барнаульский строительный колледж» Олег Чебан известен уже постоянным читателям по статям о Gambas — среде программирования на Basic. Basic применяется и при создании макросов для OpenOffice | LibreOffice. В статье приводится пример создания макроса, а для тех, кто захочет пойти дальше в списке литературы приведен переводной учебник, который легко «гуглится» и скачивается.

Алгоритм создания макросов в LibreOffice 3

Предисловие

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

Задача. Разработать тест на знания по таблице умножения.

Условия.

  1. Количество вопросов 5
  2. Множители должны задаваться случайным образом в диапазоне от 1 до 9
  3. Если правильных ответов 5, то оценка 5, если 4, то 4 и т.д..

Решение

  1. Создать файл, например: Calc-2.ods
  2. Предварительные настройки:
    • Сервис — Параметры — LibreOffice — Общие: включить экспериментальные
      возможности

    • Сервис — Параметры — LibreOffice — Безопасность — Безопасность макросов: средний
  3. Сервис — Макросы — Управление макросами — LibreOffice Basic — Макрос из Calc-2.ods: Создать модуль, см. Рис. 1.

    Рисунок 1. Создание модуля

  4. Процедура Main:

    Option Explicit   'Автоматическая проверка кода на синтаксические ошибки
    Sub Main
      rem Переменная а целого типа (Integer - целый)
      Dim a,b,c as Integer
      rem Переменная s строкового типа (String - строка)
      Dim s As String
      Dim i,n as byte  'экономим память компьютера :), тип 1 байт
      n=0
      'Цикл с параметром, количество повторений - 5
      for i=1 to 5
        'Псевдослучайное число в диапазоне от 1 до 9
        a=Int(9 * Rnd + 1) }
        b= Int(9 * Rnd + 1)}
        'Вызов стандартного диалогового окна-запроса
        s=InputBox("Сколько будет" & a & " * " & b & " = ")
        'Отбрасываем двойные кавычки и получаем число
        c = val(s)}
        if c=a*b then n=n+1  'Подсчет количества правильных ответов
      next i
      'Оператор выбора
      select case n
        case 5: MsgBox("Молодец! "+5)
        case 4: MsgBox("Хорошо }"+4)
        case 3: MsgBox("Удовлетворительно.."+3)
        case 1 to 2: msgbox("Увы, неверно :( "+2)
        case else msgbox("Вы не ответили ни на один вопрос ")
      end select
    End Sub

  5. Создание меню: Сервис — Настройка — Панель инструментов — Создать, см. Рис. 2

    Рисунок 2. Создание меню

  6. Создание команды меню: Сервис — Настройка — Панель инструментов — Добавить, см. Рис. 3

    Рисунок 3. Создание команды меню

  7. По команде: Изменить — Переименовать, можно переименовать нашу команду в «Математика».
  8. Результат, см. Рис. 4.

Литература:

  1. Программирование на языке OpenOffice.org Basic/ StarOffice 8 Programming Guide for BASIC Sun Microsystems.
    (Перевод Дмитрий Чернов)

Приложение:
Файл Calc-2.ods, содержит описанный пример
Файл Calc-2a.ods, содержит пример рассчета средней оценки и построение диаграммы успеваемости

Комментарии (4) к “Пример создания макроса в LibreOffice 3”

  1. Татьяна Чупина говорит:
    Декабрь 1, 2013, 6:36 пп

    Коллега, вы как всегда — на высоте!!! Очень интересный пример. Спасибо.

  2. Здравствуйте!
    Задумка была разработать методичку по макросам в LibreOffice, как ни странно, в интернете маловато методической информации, не считая справочной. С одной стороны привлечь внимание к свободному офису, с другой — показать, как при минимальных условиях, можно организовать вполне приличные занятия по программированию в школе, ссузе, вузе. Да судьба перебросила на другой фронт работы, сейчас преподаю схемотехнику, интересно и там, оказывается преподавание «скучной» булевой алгебры можно построить на практических примерах автоматики в производстве. Если интересно, можно опубликовать несколько лабораторных работ?

  3. Владимир Черный говорит:
    Декабрь 9, 2013, 9:36 дп

    Конечно, Олег, присылайте, мой адрес не изменился :)

  4. Олег Чебан говорит:
    Декабрь 9, 2013, 5:32 пп

    Понятно :)
    В ближайшее время..

Оставьте комментарий