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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учреждение образования Гродненский Государственный университет имени Янки Купалы Математический факультет Кафедра теории функции, функционального анализа и прикладной математики Особенности создания математических формул в Web Курсовая работа студента 2 курса Парахневича Юрия Николаевича Научный руководитель доцент Вувуникян Ю.М. Допущен к защите 29 апреля 2002 г. Зав.кафедрой ТФФА и ПМ Ровба Е.А. Гродно, 2002 Содержание 1. Введение. 2. Язык математической разметки MathML. 3. Создание математических формул в Web с помощью MathBuilder 4. Заключение. 5. Приложение 1 Исходный код программы MathBuilder v6. Приложение 2 Скриншоты.

Введение

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

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

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

В настоящее время возникла новая среда связи, представленная ЭВМ с сетевой структурой. Это открывает новые возможности для передачи и представления математической информации. 2. Язык математической разметки MahML. Первоначально WWW предназначалась для ученых.

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

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

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

Одним из способов согласования является развитие XML - упрощенного варианта SGML, разработанного для Web. XML позволяет вводить и использовать новые отметки. В то же время XML синтаксис тщательно определяет структуру документа, что облегчает автоматическую обработку и сопровождение больших массивов данных. XML подходит для разметки сложных и специализированных данных. В силу вышесказанного MathML можно определить как XML прикладную программу.

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

В подобных ситуациях MathML предлагает использовать отметки типа MSUP , MFRAC и MROW . Рассмотрим пример x 22 .Используя отметки MathML, его можно записать так MSUP MROW MF MF MROW MI x MI MO MO MN 2 MN MROW MF MF MROW MN 2 MN MSUP В дополнение к отметкам представления MathML содержит еще примерно 50 различных отметок. Используя эти отметки, предыдущий пример можно закодировать так EXPR EXPR x PLUS 2 EXPR EXPR POWER 2 EXPR Рассмотрим пример x 2 4x 4 0 MROW MROW MSUP MI x MI MN 2 MN MSUP MO MO MROW MN 4 MN MO InvisibleTimes MO MI x MI MROW MO MO MN 4 MN MROW MO MO MN 0 MN MROW Здесь стоит обратить внимание на два аспекта во-первых, в примере присутствуют отметки типа MI,MN,MO и вложенные отметки типа MSUP и MROW, а во-вторых, отметки типа MROW используются для обозначения условия, в данном случае представленного операндом. Отметки, содержащие данные, указывают на их тип. Например, отметка MI указывает на идентификатор или переменную, а отметка MN - на номер.

Другие отметки обозначают схему размещения.

Каждая схема размещения содержит определенное число подвыражений в сторогом порядке. Например,MSUP схема должна содержать в точности два подвыражения. x -b - sqrt b 2 - 4ac 2a MROW MI x MI MO MO MFRAC MROW MROW MO - MO MI b MI MROW MO PlusMinus MO SQRT MROW MSUP MI b MI MN 2 MN MSUP MO - MO MROW MN 4 MN MO InvisibleTimes MO MI a MI MO InvisibleTimes MO MI c MI MROW MROW SQRT MROW MROW MN 2 MN MO InvisibleTimes MO MI a MI MROW MFRAC MROW В этом примере следует обратить внимание на то, что знак плюсминус - специальный поименованный объект.

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

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

Схемы размещения - конструкторы выражений традиционных математических записей. Лексемы MI идентификаторы MN номер MO оператор MF заграждающая метка MTEXT текст MSPACE пробел MS литерал строки Общая схема размещения MSTYLE изменение стиля MERROR включение сообщения о синтаксической ошибке MPHANTOM при сохранении размера содержание становится невидимым. MROW горизонтальная группировка любого числа подвыражений MFRAC формирование дроби из двух подвыражений MSQRT формирование знака квадратного корня радикала безиндекса MROOT формирование радикала с определенным индексом Таблицы и матрицы MTABLE таблица или матрица MTR строка в таблице или матрице MTD одно вхождение в таблицу или матрицу.

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

Многие операторы в каждой конкретной форме могут использоваться по-разному. Знак, например, в зависимости от ситуации может быть как префиксом, так и инфиксом. Если оператор является первым подвыражением в MROW и его длина превышает единицу, то используется префиксная форма если же оператор является последним подвыражением в MROW ,то правилами предусматривается использование постфиксной формы. Инфиксная форма для операторов, включенных в схему типа MROW , не используется.

Если возникает ситуация выбора одной из нескольких форм и не дано никаких дополнительных указаний, то право ее остается за пользователем. Существуют четыре атрибута, регулирующие соотношениями между размерами операторов, заграждающих меток и других элементов stretchy, symmetric, maxsize и minsize. Например, если для символа maxsize3, это означает, что его размеры могут превысить стандартные не более, чем в три раза. 3.

Создание математических формул в Web с помощью MathBuilder

И вот все проблемы были решены. . При написании программы самой сложной частью оказалась вставка таблицы... for i1 to memo1.Lines. Эта процедура предназначена для корректного отображения картинки брауз... Создание математических формул в Web с помощью MathBuilder.

Заключение

Заключение Изучение языка математической разметки MathML содержит в себе некоторые минусы 1. Не все браузеры поддерживает MathML. 2. Доскональное изучение MathML громоздко и сложно для обычного пользователя. На момент написания MathBuilder из браузеров, которые поддерживают язык математической разметки был только Mozilla 0.9.9 и Internet Explorer 5.5 остальные не поддерживают без плагинов англ. plug-in дополнительная программа для выполнения каких либо специфических функций.

Однако, метод которым пользуется MahBuilder поддерживается всеми браузерами. Вышеописанная программа, на мой взгляд, вносит некий вклад в развитие математических представлений в Web, потому что на всех математических сайтах, математические формулы представлены как на рисунке 3,то есть с новой строчки, что менее корректно выглядит, в отличии от рисунка 4, когда формула отображается в той же строке, что и текст.

Следовательно целесообразнее использовать метод, используемый в MathBuilder. Приложение 1 Исходный код программы MathBuilder. unit MyEditu interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus, ExtDlgs, shellapi type TForm1 classTForm Memo1 TMemo OpenDialog1 TOpenDialog SaveDialog1 TSaveDialog MainMenu1 TMainMenu N1 TMenuItem N2 TMenuItem N3 TMenuItem N4 TMenuItem N5 TMenuItem N7 TMenuItem SaveDialog2 TSaveDialog N6 TMenuItem N8 TMenuItem N10 TMenuItem N11 TMenuItem OpenDialog3 TOpenDialog OpenDialog2 TOpenDialog N9 TMenuItem N12 TMenuItem procedure N2ClickSender TObject procedure N3ClickSender TObject procedure N4ClickSender TObject procedure N5ClickSender TObject procedure N6ClickSender TObject procedure N8ClickSender TObject procedure N10ClickSender TObject procedure N11ClickSender TObject procedure N12ClickSender TObject private Private declarations public Public declarations end var Form1 TForm1 implementation uses Unit4 es Unit2 R .DFM procedure TForm1.N2ClickSender TObject begin With OpenDialog1 do If Execute Then Begin memo1.lines.loadfromfileFilename ExtractFilenameFilename SaveDialog1.FileName Filename Filename End end procedure TForm1.N3ClickSender TObject begin Memo1.Lines. SaveToFileSaveDialog1.FileNa me end procedure TForm1.N4ClickSender TObject begin with SaveDialog1 do If execute Then Memo1.Lines. SaveToFileSaveDialog1.FileNa me end procedure TForm1.N5ClickSender TObject var list TStringList tmpString string i, CurrentSymbol,SeekSymbol, lastTag integer notFound boolean begin With SaveDialog2 do If execute then Begin listTStringList. Create for i0 to memo1.Lines. Count-1 do list. Addmemo1.linesi list. Insert0, HTML list. Add HTML for i1 to memo1.Lines. Count do begin lastTag1 tmpString for CurrentSymbol1 to LengthListi - 9 do if CopyListi, CurrentSymbol, 9 img src then begin SeekSymbolCurrentSymbol notFoundtrue while SeekSymbol LengthListi and notFound do begin if CopyListi, SeekSymbol, 1 then begin tmpString tmpString td CopyListi, lastTag,CurrentSymbol-lastTag td td alignbottom CopyListi,CurrentSymbol,SeekSymbol-Curre ntSymbol1 td lastTagSeekSymbol1 notFoundfalse end incSeekSymbol end end if tmpString then begin tmpStringtmpString td CopyListi, lastTag, LengthListi-lastTag1 td Listi table tmpString table end end List. SaveToFileFilename list. Free End end procedure TForm1.N6ClickSender TObject prosmotr var list TStringList tmpString string i,CurrentSymbol,SeekSymbol, lastTag integer notFound boolean Begin listTStringList. Create for i0 to memo1.Lines. Count-1 do list. Addmemo1.linesi list. Insert0, HTML list. Add HTML for i1 to memo1.Lines. Count do begin lastTag1 tmpString for CurrentSymbol1 to LengthListi - 9 do if CopyListi, CurrentSymbol, 9 img src then begin SeekSymbolCurrentSymbol notFoundtrue while SeekSymbol LengthListi and notFound do begin if CopyListi, SeekSymbol, 1 then begin tmpString tmpString td CopyListi, lastTag,CurrentSymbol-lastTag td td alignbottom CopyListi,CurrentSymbol,SeekSymbol-Curre ntSymbol1 td lastTagSeekSymbol1 notFoundfalse end incSeekSymbol end end if tmpString then begin tmpStringtmpString td CopyListi, lastTag, LengthListi-lastTag1 td Listi table tmpString table end end List. SaveToFiletmp.html list. Free ShellExecutehandle, open, tmp.html SWSHOW winexectmp.html, SWSHOW Form2.showModal End end of prosmotr procedure TForm1.N8ClickSender TObject begin close end procedure TForm1.N10ClickSender TObject var tmpMemo string begin With OpenDialog2 do if execute then Begin begin tmpMemotmpMemo img src ExtractFilenameFilename Memo1.SelText tmpMemo end End end procedure TForm1.N11ClickSender TObject var Href String begin With OpenDialog3 do if Execute then Begin HrefHref a href ExtractFilenameOpenDialog3.Filename Ссылка a Memo1.SelText Href End end procedure TForm1.N12ClickSender TObject begin form4.ShowModal end end. Приложение2. Скриншоты.

Рис.1 Рис.2 Рис.3 Рис.4.