Отображение математических формул в окне браузера средствами DHTML и MATHML

Автор работы: Пользователь скрыл имя, 16 Октября 2013 в 23:50, дипломная работа

Описание работы

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

Содержание работы

Введение 3
1 Постановка задачи 5
2 Используемые средства реализации 6
2.1 JavaScript 6
2.2 MathML 7
2.3 jQuery 9
3 Обзор существующих методов решения 10
4 Пользовательский интерфейс 11
5 Реализация 11
5.1 Синтаксис 11
5.2 Алгоритм конвертации 13
5.3 Алгоритм вычисления 14
5.4 Алгоритм конвертации натурального логарифма 14
5.5 Алгоритм конвертации логарифма «а» по основанию «b» 14
5.6 Алгоритм функции вычисления квадратного корня 15
5.7 Алгоритм функции вычисления корня n-ой степени 15
5.8 Алгоритм вычисления степени 15
5.9 Алгоритм проверки на количество скобок 16
5.10 Алгоритм проверки на корректность результата вычисления 16
Заключение 17
Список использованных источников 18

Файлы: 1 файл

Kursach_4kurs_2_semestr_denis.doc

— 168.00 Кб (Скачать файл)

ПЕТРОЗАВОДСКИЙ  ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ

 

 

Выпускная квалификационная работа на степень бакалавра

ОТОБРАЖЕНИЕ МАТЕМАТИЧЕСКИХ ФОРМУЛ В ОКНЕ БРАУЗЕРА СРЕДСТВАМИ DHTML И MATHML

 

                                                 Выполнил: 

          студент 4 курса группы 22405   Д. В. Яровой

_________________

подпись

                                                 Научный руководитель:

                                                 к. ф.-м. н., доцент С. Н. Перепечко

                                                 Оценка руководителя:            _________________

_________________

подпись

                                                 Представлена на кафедру 

                                                                            «___»________________201__ г.     

                                                                                  _________________________

                                                                                       подпись принявшего работу

         Допущена к защите

         и. о. зав. каф. Щеголева Л.  В.

_________________

подпись

 

         Итоговая оценка                     _________________

_________________

подпись

 

Петрозаводск

2012

СОДЕРЖАНИЕ

 

 

 

 

ВВЕДЕНИЕ

 

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 ПОСТАНОВКА  ЗАДАЧИ

 

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

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

Основными задачами в ходе текущего курсового проекта являются:

    1. Добавление в алгоритм разбора строки функции для конвертации натурального логарифма;
    2. Добавление в алгоритм разбора строки функции для конвертации логарифма «а» по основанию «b»;
    3. Разработка функции для вычисления квадратного корня;
    4. Разработка функции для вычисления корня n-ой степени;
    5. Разработка функции для вычисления степени;
    6. Разработка функции обработчика ошибок, выполняющей проверку на количество скобок;
    7. Разработка функции обработчика ошибок, выполняющей проверку корректности результата вычисления;
    8. Модификация пользовательского интерфейса для удобного ввода математических выражений.

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

 

2 ИСПОЛЬЗУЕМЫЕ  СРЕДСТВА РЕАЛИЗАЦИИ

2.1 JAVASCRIPT

 

JavaScript — это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента. Если быть более точным, то JavaScript - это не только язык программирования на стороне клиента. Liveware, прародитель JavaScript, является средством подстановок на стороне сервера Netscape. Однако наибольшую популярность JavaScript обеспечило программирование на стороне клиента.

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

На практике это выражается в том, что можно, например, изменить цвет фона страницы или интегрированную в документ картинку, открыть новое окно или выдать предупреждение [7].

Название JavaScript является собственностью Netscape. Реализация языка, осуществленная разработчиками Microsoft, официально называется Jscript. Версии JScript совместимы (если быть совсем точным, то не до конца) с соответствующими версиями JavaScript, т. е. JavaScript является подмножеством языка JScript.

JavaScript стандартизован ECMA (European Computer Manufacturers Association — Ассоциация европейских производителей компьютеров). Соответствующие стандарты носят названия ECMA-262 и ISO-16262. Этими стандартами определяется язык ECMAScript, который примерно эквивалентен JavaScript 1.1. Отметим, что не все реализации JavaScript на сегодня полностью соответствуют стандарту ECMA [9].

Для создания механизма  управления страницами на клиентской стороне было предложено использовать объектную модель документа. Суть модели в том, что каждый HTML-контейнер — это объект, который характеризуется тройкой:

  • свойства;
  • методы;
  • события.

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

Объекты с одинаковым набором свойств, методов и событий объединяются в классы однотипных объектов. Классы — это описания возможных объектов. Сами объекты появляются только после загрузки документа браузером или как результат работы программы. Об этом нужно всегда помнить, чтобы не обратиться к объекту, которого нет. [4,8].

 

2.2 MATHML

 

Язык MathML является подмножеством языка XML (eXtensible Markup Language — расширяемый язык разметки), который  часто служит для создания других языков. Такое использование XML сегодня  вполне естественно и хорошо зарекомендовало себя и в других случаях, когда применение HTML для передачи данных новых типов наталкивалось на ограничения этого формата. К настоящему времени консорциум W3C опубликовал 3-е издание версии 3.0 спецификации языка MathML, что говорит о жизнеспособности и устойчивости проекта.

Среди целей, которые  ставились рабочей группой W3C по математике при создании MathML, были:

  • обеспечение кодирования материалов математического характера для коммуникаций всех уровней образовательного и научного типа;
  • обеспечение кодирования как математической символики, так и ее значений;
  • поддержка создания шаблонов и других приемов математического редактирования;
  • обеспечение преобразования в другие математические форматы как чисто презентационного, так и семантического характера, а также — из этих форматов в создаваемый язык математической разметки;
  • возможность передачи информации с учетом особенностей конкретных программ визуализации;
  • поддержка эффективных процессов просмотра длинных математических выражений;
  • обеспечение расширяемости возможностей (способами, которые заранее не известны).

Общий принцип  использования MathML состоит в том, что математические конструкции  встраиваются в обычный HTML-документ и (если браузер либо специальная  программа поддерживает эту спецификацию) адекватно воспроизводятся при загрузке документа из сети [6].

Первое, с чем приходится столкнуться в MathML и что отличает данный язык разметки от аналогов, —  это использование двух способов кодирования выражений. Один из них основан на непосредственной передаче синтаксиса формулы (presentation), другой, напротив, отражает семантику выражения (content). Презентационная разметка описывает математическую символику с выражениями, которые строятся с использованием некоторых схем вывода, с заданием способов размещения подвыражений, таких, как дроби, верхние и нижние индексы. Семантическая разметка описывает математические объекты и функции, где для каждого узла конструируется дерево выражения согласно некоторой конкретной схеме, а ветви этого дерева отвечают подвыражениям.

Все элементы MathML делятся  на три группы: элементы представления, элементы содержания и интерфейсные элементы.

Элементы представления  описывают визуально ориентированную  двухмерную структуру математической нотации. Например, элемент mrow обычно применяется для обозначения горизонтального ряда частей выражения, и элемент msup, который отмечает верхний индекс. Как правило, каждый элемент представления соответствует одному типу нотационной схемы, такой как ряд, верхний индекс, нижний индекс и т. д. Любая формула состоит из частей, которые могут состоять из простейших элементов, таких как цифры, буквы или другие символы.

Наиболее важными элементами представления являются mi, mn и mo, используемые для представления идентификаторов, чисел и операторов соответственно. Обычно эти элементы отображаются разными стилями: числа — прямым шрифтом, идентификаторы — наклонным, вокруг операторов оставляется дополнительное свободное пространство [1].

Основные элементы языка  MathML, а так же их использование и результат представлены в приложениях А и Б.

 

2.3 JQUERY

 

jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax [5].

 

 

3 ОБЗОР СУЩЕСТВУЮЩИХ  МЕТОДОВ РЕШЕНИЯ

 

Набирать теги на языке MathML достаточно трудоемко, по мере усложнения формулы, тег приобретает громоздкий вид, что делает набор в ручную очень сложным и однообразным занятием. Существует огромное количество программ, которые автоматизируют набор формул в формате MathML. Во-первых это, математические пакеты, такие как, Mathematica или Maple, позволяют сохранять набранные в них формулы в формате MathML. Во-вторых, web-редактор, Amaya, так же позволяет сохранять формулы в этом формате.

Так же существует множество конвертеров из различных форматов в формат MathML. Например конвертер LaTeX2HTML преобразует формулу, записанную в формате TeX в формат MathML. Не менее известный конвертер из формата TeX, это TtM (TeX to MathML translator). Word2MathML может преобразовывать файлы MS Office Word в XHTML+MathML, после чего файл может быть просмотрен в браузере.

Конвертеры  из текстового формата найти достаточно трудно. Одним из них является MathML Generator, он принимает на вход математическое выражение, записанное в строку, и  выдает сгенерированный код MathML. Недостатком этого конвертера является то, что он поддерживает далеко не все алгебраические операторы. Еще одним представителем является PhpMathPublisher, он так же принимает на вход математическое выражение, но выдает формулу в виде картинки. Достоинством этого конвертера является кроссбраузерность.

Информация о работе Отображение математических формул в окне браузера средствами DHTML и MATHML