МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ p>
Установи освіти «Гродненський Державний університет імені Янки Купали» p>
Математичний факультет p>
Кафедра теорії функцій, функціонального аналізу і прикладної математики
Особливості створення математичних формул в Web p>
Курсова робота студента 2 курсу p>
Парахневіча Юрія Миколайовича p>
Науковий керівник: доцент Вувунікян Ю.М. p>
Допущений до захисту
29 квітня 2002
Зав.кафедри ТФФА і ПМ
Ровба Е.А. p>
Гродно, 2002 p>
Зміст: p>
1. Введення. P>
2. Мова математичної розмітки MathML. P>
3. Створення математичних формул в Web за допомогою MathBuilder p>
4. Висновок. P>
5. Додаток 1: Вихідний код програми MathBuilder v1.01 p>
6. Додаток 2: Скріншоти. P>
Введення. P>
В епоху розвитку інтернет технологій гостро постало питання про створення сайтівзі специфічним змістом, тобто містить особливу розмітку, іспецифічні картинки.
Відмінність математики від інших наук полягає у використанні комплексу високорозвиненої системи символічних записів. Математичні ідеї і записи, здопомогою яких вони викладаються, існують незалежно один від одного.
Дійсно, багато положень елементарної математики можна записати,використовуючи звичайні слова. Однак вміння представляти ідеї в символьної форміє основним при аналізі та оперування даними в математиці. Уматематики угоди про форму записів носять комплексний характер.
Арифметичні вирази, наприклад, записуються з використанням цифр,змінних і стандартного набору знаків для позначення арифметичнихоперацій. Тим не менш, труднощі виникають при спробах описати вписьмову форму навіть найпростіші з математичних виразів. Звідсивипливає необхідність створення системи символьних записів, яка могла бвикористовуватися в усьому світі. p>
У розвиток форм математичного запису істотний внесок внеслатехнологія зв'язку. У своєму розвитку вона пройшла шлях від глиняних планшетів іпапірусів до друкованого способу подання інформації, а математичнізаписи велися з використанням можливостей, які надає технологієюзв'язку на різних часових етапах. p>
В даний час виникла нова середу зв'язку, представлена ЕОМ змережевий структурою. Це відкриває нові можливості для передачі іпредставлення математичної інформації. p>
2. Мова математичної розмітки MahML. P>
Спочатку WWW призначалася для вчених. Але в ході використання WWWз'ясувалося, що інформація, передана по її каналах, представляєінтерес не тільки для фахівців. Але можливості івключенія математичнихвиразів в HTML виявилися дуже обмеженими. Статті записувалися взакодованою формі, основу якої складали набори символів ASCII. p>
Незважаючи на широке розповсюдження Web, недолік підтримки науковоїзв'язку обмежує сферу її застосування.
Проблеми, що виникають під час запису математичних виразів, можна розділитина дві групи: проблеми кодування і проблеми реалізації. Проблеми,пов'язані з включенням до документа математичних записів якілюстраційні матеріалу, ставляться до проблем реалізації. p>
Останнім часом першорядну важливість набувають різні способиавтоматичної обробки даних. Тому вирішення проблеми кодуванняматематичних записів для Web важливіше, ніж вирішення проблеми реалізації,але і її не можна ігнорувати p>
В даний час йде активний процес включення інтерактивнихматеріалів у навчальну програму. Однак суворі часові та технічніобмеження створюють труднощі при використанні інтерактивних матеріалів назаняттях з математичних дисциплін.
Наприклад, здійснити перевірку екзаменаційних відповідей на ПК неможливобез уміння записувати математичні вирази мовою, зрозумілою машині.
Наступним кроком використання нових технологій в галузі освітиє створення інтерактивних підручників. додаток до вищесказаного, MathML має узгоджуватися і зіснуючої HTML середовищем. p>
Одним із способів узгодження є розвиток XML - спрощеноговаріанту SGML, розробленого для Web. XML дозволяє вводити і використовуватинові позначки. У той же час XML синтаксис ретельно визначає структурудокумента, що полегшує автоматичну обробку та супровід великихмасивів даних. p>
XML підходить для розмітки складних і спеціалізованих даних. У силувищесказаного MathML можна визначити як XML прикладну програму. XMLнадає спосіб визначення структури та синтаксису. Механізмиобробки та представлення інформації MathML вимагають детальної розробки.
Для обробки даних MathML необхідно розширити можливості віконперегляду. p>
Загальні принципи MathML: p>
Існує глибокий зв'язок між математичними ідеями та їх записом. p>
Математична запис, зроблений з дотриманням правил, виключаєподвійне тлумачення. p>
У деяких випадках символічна і математична структура записуеквівалентні. У подібних ситуаціях MathML пропонує використовувати позначкитипу
, і. p>
Розглянемо приклад: <(x + 2) ^ 2>. Використовуючи позначки MathML, його можназаписати так: p>
(x p>
+ p>
2 p>
) p>
2 p>
На додаток до позначок подання MathML містить ще приблизно 50різних оцінок. Використовуючи ці позначки, попередній приклад можназакодувати так: x p>
2 p>
2 p>
Розглянемо приклад: x ^ 2 + 4x + 4 = 0 x p>
2 p>
+ p>
4 p>
& InvisibleTimes; x p>
+ p>
4 p>
= p>
0 p>
Тут варто звернути увагу на два аспекти: по-перше, у прикладіприсутні позначки типу MI, MN, MO і "вкладені" відмітки типу MSUP і MROW,а по-друге, відмітки типу MROW використовуються для позначення умови, вданому випадку представленого операндом "=". p>
Відмітки, що містять дані, які вказують на їх тип. Наприклад, позначка MIвказує на ідентифікатор або змінну, а відмітка MN - на номер. Іншіпозначки позначають схему розміщення. Кожна схема розміщення міститьпевне число подвираженій в сторогом порядку. Наприклад, MSUP схемаповинна містити в точності два подвираженія. x = (-b + - sqrt (b ^ 2 - 4ac))/2a: x p>
= p>
- b p>
& PlusMinus b p>
2 p>
- p>
4 p>
& InvisibleTimes; a p>
& InvisibleTimes; c p>
2 p>
& InvisibleTimes; a p>
У цьому прикладі слід звернути увагу на те, що знак "плюс/мінус" --спеціальний пойменований об'єкт. MathML надає великий список іменматематичних об'єктів.
Елементи подання відповідають конструкціям традиційноїматематичного запису і дозволяють описувати синтаксичну структуруматематичного виразу. Наприклад, структура This покращує якістьматематичного запису і в тих випадках, коли не відомий, наприклад,роздільна здатність монітора. Елементи подання можна розділити надва класи: лексеми та схеми розміщення. Існує також набір порожніхелементів, які використовуються разом з конкретною схемою розміщення. Всі лексеми
(в синтаксичному розумінні), включені в математичний вираз, повиннібути помічені MathML відмітками лексем. Типи MathML лексем: ідентифікатори
(змінні, імена функцій і т.д.), числа, оператори, загороджувальному мітки
(наприклад, круглі дужки) і рядкові літерали. Для представлення текстунематематичного характеру використовуються елементи лексем. Схеми розміщення --конструктори виразів традиційних математичних записів.
Лексеми: p>
ідентифікатори номер оператор загороджувальному мітка текст пробіл літерал рядка p>
Загальна схема розміщення: p>
зміна стилю включення повідомлення про синтаксичну помилку при збереженні розміру зміст стає невидимим. горизонтальна угруповання будь-якого числа подвираженій формування дробу з двох подвираженій формування знаку квадратного кореня (радикала безіндекса) формування радикала з певним індексом p>
Таблиці і матриці: таблиця або матриця рядок у таблиці або матриці одне входження до таблиці або матрицю.
Механізми виконання операторів і змусити міток ідентичні і більшескладні в порівнянні з іншими маркерами. p>
Багато математичні символи типу інтегрального символу, знаку
"+", круглих дужок і т.д. мають задані за замовчуванням атрибути, якіможуть включатися в і схеми. p>
Багато операторів в кожній конкретній формі можуть використовуватися по -різному.
Знак "+", наприклад, в залежності від ситуації може бути як префіксом,так і Інфікси. Якщо оператор є першим подвираженіем в і йогодовжина перевищує одиницю, то використовується префіксная форма, а якщо операторє останнім подвираженіем в, то правилами передбачаєтьсявикористання постфіксной форми. Інфіксная форма для операторів, включенихдо схеми типу, не використовується. Якщо виникає ситуація вибору однієїз декількох форм і не дано ніяких додаткових вказівок, то право їїзалишається за користувачем. Існують чотири атрибуту, що регулюютьспіввідношеннями між розмірами операторів доброчинці міток та іншихелементів: stretchy, symmetric, maxsize і minsize. Наприклад, якщо длясимволу maxsize = "3", це означає, що його розміри можуть перевищитистандартні не більше, ніж у три рази. p>
3. Створення математичних формул в Web за допомогою MathBuilder p>
Програма MathBuilder (рис.1) являє собою додаток до системистворення математичних формул MathType 5. При публікації математичнихформул в web без використання мови математичної розмітки MathML, здопомогою представлення формули в форматі *. bmp, (*. gif) виникає проблема,пов'язана з неправильним розташуванням формули,
(рис.2) цю проблему можна вирішити за допомогою деякого HTML коду, а саме p>
Текст1 p>
Текст2 p>
Але з огляду на обсяги формул, що використовуються в математичній літературі,постає необхідність автоматизації цього процесу. Автоматизувати цейпроцес може MathBuilder. Сама програма має простий інтерфейс (рис.2),меню «Файл» і «Редагувати». Меню «Файл» містить в собі «Відкрити»
(Відкриття файлу у форматі *. txt), «Зберегти» (Збереження файлу у форматі
*. txt), «Експорт» (Експорт файлу у формат *. html),
«Вихід» (Вихід з програми). Меню «Редагувати» містить у собінаступні функції: «Перегляд» (Відкривається вікно браузера, у якому беззбереження можна переглянути результат роботи),
«Вставити малюнок» (дозволяє вставити посилання в файл на потрібний малюнок),
«Гіперпосилання» (вставляє посилання на інтернет документ, розміщуючи в файл посиланняна документ). p>
Сам набір документа нічим не відрізняється від набору текстового документа вредакторі «Блокнот». При натискання «вставити малюнок» програма пропонуєвибрати графічний файл (в даному випадку математичну формулу) і в полінабору тексту з'являється запис
Це означає що в HTML файл буде включена посилання на зображення. Требавідзначити що при збереженні математичної формули, потрібно зберегти їїв каталог, в якому знаходиться сама програма MathBuilder. Ця процедурапризначена для коректного відображення картинки браузером,
Адже якщо, наприклад, зберегти її в каталозі «мої документи» та вказатипрограмою на цей каталог то в посиланні на картинку пропишеться шлях у цейкаталог. А на сервер, на якому знаходиться той або інший документ, небуде цього каталогу, отже картинка відображатися не буде.
Програма MathBuilder передбачає цей момент і тому вона записуєпосилання на картинку так, як ніби вона знаходиться в поточному каталозі. Якщоскориставшись вбудованим браузером картинка відображатися не буде, тоце означає що потрібна математична формула не знаходиться в каталозі зпрограмою. p>
При розробці програми виникла одна проблема: Якщо користувач,створивши математичну формулу з системі MathType збереже її в форматі
*. bmp (хоча MathType не пропонує збереження в такому форматі) то як нідивно файл збережеться в заданому форматі, навіть ярлик у цього файлу будетаким, який характерний для файлів з таким форматом, проте броузер
Internet Explorer відображати цей малюнок не буде, тому що справді
MathType збереже файл із заданим розширенням (bmp) але в форматі gif.
Отже, слід зберігати файл у форматі *. gif, тоді проблем такоготипу не буде.
Пояснення до вихідного коду програми: p>
procedure TForm1.N2Click (Sender: TObject); begin
With OpenDialog1 do
If Execute Then p>
Begin p>
memo1.lines.loadfromfile (Filename); p>
ExtractFilename (Filename); p>
SaveDialog1.FileName: = Filename; p>
Filename: = '';
End; end; p>
цей код забезпечує відкриття файлу. p>
procedure TForm1.N3Click (Sender: TObject);begin p>
Memo1.Lines.SaveToFile (SaveDialog1.FileName);// Збереження файлуend; p>
procedure TForm1.N4Click (Sender: TObject);beginwith SaveDialog1 do
If execute Then p>
Memo1.Lines.SaveToFile (SaveDialog1.FileName);// Меню "Зберегти як." p>
End;
//зараз йде опис самої головної частини програмиprocedure TForm1.N5Click (Sender: TObject);var list: TStringList; tmpString: string; i, CurrentSymbol, SeekSymbol, lastTag: integer; notFound: boolean;begin
With SaveDialog2 do
If execute then
Begin list: = TStringList.Create; for i: = 0 to memo1.Lines.Count-1 do list.Add (memo1.lines [i]); list.Insert (0 ,''); list.Add (''); p>
// в цій частині (див. вище) відбувається вставка тегів
//Перед набраним текстом і після тексту. P>
for i: = 1 to memo1.Lines.Count do begin lastTag: = 1; tmpString :=''; for CurrentSymbol: = 1 to Length (List [ i]) - 9 do if Copy (List [i], CurrentSymbol, 9) = ' p>