Excel 2016 для Mac Word 2016 для Mac PowerPoint для Mac Excel для Mac 2011 Word для Mac 2011 PowerPoint для Mac 2011 Еще…Меньше
Примечание:
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.
В своем коде можно задействовать другие объекты приложения, задав ссылки на библиотеку объектов этого приложения.
Добавление объекта
На вкладке «Разработчик» откройте окно проекта Visual Basic. Увидеть вкладки «разработчик» отображается ниже, если она еще не открыта.
-
В меню Сервис выберите пункт Ссылки.
-
В разделе Доступные ссылки установите флажок для библиотеки объектов, которую требуется задействовать в вашем проекте Visual Basic.
Примечание: Чтобы ускорить компиляцию, снимите флажки для библиотек объектов, которые не будут использоваться в проекте.
-
Чтобы задать порядок доступа к библиотекам объектов, в разделе Доступные ссылки выберите любую библиотеку и переместите ее вверх или вниз с помощью кнопок приоритета.
-
Чтобы добавить в раздел Доступные ссылки другую библиотеку, нажмите кнопку Обзор и укажите путь к необходимому файлу.
-
-
На верхней панели выберите Excel > настройки > панель инструментов и ленты.
-
В разделе Настройка ленты выберите Основные вкладки и установите флажок Разработчик.
-
Нажмите кнопку Сохранить и закройте Параметров Excel.
Нужна дополнительная помощь?
Многие пользователи во время работы с документами Word интересует вопрос о том, как сделать список литературы в Ворде. Подобный список литературы необходим в Ворде, если в тексте документа используются различные заимствования из других источников.
Список литературы Word — это перечень всех источников, например, книг, журналов, газетных статей, сайтов в интернете и т. д., процитированных в документе. Список использованной литературы Word, обычно, располагается в конце документа.
Содержание:
- Как сделать список литературы в Ворде автоматически
- Добавление сведений об источнике в списке литературы
- Цифровой список литературы Ворд (квадратные скобки)
- Как сделать список литературы по алфавиту в Ворде
- Как удалить список литературы в Word
- Выводы статьи
Если не показывать ссылки на источники, то автора данного документа могут обвинить в плагиате, потому что он не указал откуда он взял использованную информацию. Подобные сведения зачастую ссылаются на авторитетные источники, поэтому они придают дополнительный «вес» этому документу.
Существует два вида ссылок на источники информации: авторского и цифрового типов. Как оформить список литературы в Ворде зависит от предъявляемых требований, исходящих от вышестоящего органа, редакции журнала, руководства учебного заведения и т. п.
Ссылки в Ворде на список литературы состоят из ссылки в тексте документа на источник, находящийся в списке литературы. Благодаря этому, читатель сможет быстро узнать, на что именно ссылались в данном фрагменте текста.
В этой статье мы рассмотрим, как сделать список литературы в Word несколькими способами. Эти инструкции можно применять в следующих версиях приложения: Word для Microsoft 365, Word 2019, Word 2016, Word 2013, Word 2010, Word 2007. В интерфейсе программы Microsoft Word разных версий могут быть несущественные различия.
Как сделать список литературы в Ворде автоматически
Сначала мы попробуем создать автоматический список литературы в Ворде. В тексте документа будут проставлены ссылки на источники, которые будут добавлены в список литературы.
Выполните следующие действия в окне текстового редактора Word:
- Поместите курсор мыши в том месте фрагмента документа, где вам необходимо создать ссылку на источник информации.
- Откройте вкладку «Ссылки», перейдите в группу «Ссылки и списки литературы».
- В разделе «Стиль» нужно выбрать стиль ссылки.
Для общественно-политических и литературных источников, обычно, используются стили «MLA» и «APA». В технической литературе более распространены ссылки с цифрами, например, «ISO 690 — цифровая ссылка».
Если вам нужен список литературы в Ворде по ГОСТу, выберите соответствующий стиль. В Word список литературы по ГОСТ можно применять по двум вариантам: «ГОСТ — сортировка по имена» или «ГОСТ — сортировка по названиям».
- Сначала нажмите на кнопку «Вставить ссылку», а потом в выпадающем меню на пункт «Добавить новый источник…».
- Заполните необходимые поля в окне «Создать источник» введя все необходимые сведения.
Вам нужно выбрать тип источника (книга, журнал, реферат, отчет, веб-сайт и т. д.), а затем заполнить рекомендованные поля. Чтобы открыть дополнительные поля для конкретного типа источника, поставьте флажок в пункте «Показать все поля списка литературы».
После фамилии автора нужно поставить запятую перед его инициалами. Если у данной книги несколько авторов, активируйте пункт «Корпоративный автор», чтобы добавить сведения о всех авторах.
- Нажмите на кнопку «ОК».
- Подобным образом добавьте новую ссылку на источник в редактируемом тексте.
- В тексте документа появится ссылки на список литературы Word.
Если ранее созданную ссылку снова нужно ввести в текст, нажмите на кнопку «Вставить ссылку», а затем выберите ее из списка доступных.
- После добавления в данный текст всех источников, установите курсор мыши, как правило, в конце текста документа там, где должен располагаться список использованной литературы.
- Нажмите на значок «Список литературы», чтобы выбрать подходящий формат с помощью встроенных примеров: «Список литературы», Ссылки» или «Цитируемые труды».
- В документе появится список литературы по алфавиту в Ворде.
Добавление сведений об источнике в списке литературы
Если сведений о литературном источнике недостаточно, можно использовать функцию «Заполнитель». Заполнители ссылок не отображаются в списке литературы.
Пройдите последовательные шаги:
- Нажмите на значок «Вставить ссылку», выберите команду «Добавить заполнитель…».
- В окне «Имя-заполнитель» придумайте имя для конкретного заполнителя.
- Нажмите на «Управление источниками».
- В окне «Диспетчер источников», в поле «Текущий список» напротив имени заполнителя появится вопросительный знак.
Заполнители в текущем списке располагаются по именам тегов в алфавитном порядке с номерами в названии.
- Выделите заполнитель, нажмите на кнопку «Изменить…».
- В окне «Изменить источник» заполните необходимые сведения.
Цифровой список литературы Ворд (квадратные скобки)
При создании списка литературы часто используются ссылки в квадратных скобках с порядковыми числами. В квадратные скобки добавляется номер ссылки на источник, находящийся в списке использованной литературы.
Создание списка литературы в Word проходит следующим образом:
- Самостоятельно создайте список литературы.
- Выделите источники в списке.
- Откройте вкладку «Главная», перейдите к группе «Абзац».
- Нажмите на стрелку значка «Нумерация», выберите формат нумерации. используемый по умолчанию (арабская цифра с точкой).
Ранее выделенный список литературы автоматически пронумеруется.
- Установите курсор в нужном месте фрагмента текста.
- Если вам необходима ссылка только на источник, то ничего не вставляйте в квадратные скобки — []. Если нужно добавить номер страницы, вставьте эти сведения в таком виде — [, с. 107].
- Перейдите во вкладку «Вставка».
- В разделе «Ссылки» нажмите на команду «Перекрестная ссылка».
- В окне «Перекрестные ссылки» выберите тип ссылки — «Нумерованный список» (или «Абзац»), а в поле «Вставить ссылку на:» — «Номер абзаца».
Проделайте подобную операцию со следующей ссылкой, находящейся в тексте документа Word.
Если вы после сохранения начали снова редактировать файл: вставлять новые или удалять старые ссылки, то нумерация в списке литературы может перестать совпадать. Решить эту проблему можно следующим образом:
- Выделите текст документа с помощью клавиш «Ctrl» + «A».
- Щелкните правой кнопкой мыши внутри документа.
- В открывшемся контекстном меню нажмите на «Обновить поле».
Список литературы будет заново автоматически пронумерован.
Как сделать список литературы по алфавиту в Ворде
В некоторых случаях, пользователям нужен список литературы в алфавитном порядке.
Сделать это можно следующим способом:
- Выделите список литературы.
- Если он уже пронумерован, нажмите на стрелку у кнопки «Нумерация».
- В выпадающем меню в библиотеке нумерации щелкните по формату «Нет».
- Войдите во вкладку «Главная».
- В группе «Абзац» нажмите на значок «Сортировка» (А-Я).
- В окне «Сортировка текста» нажмите на кнопку «ОК».
При настройках по умолчанию сортировка текста идет по возрастанию.
- Нажмите на кнопку «Нумерация», а потом выберите тип нумерации.
Как удалить список литературы в Word
В приложении MS Word не предусмотрен функционал для удаления ненужных ссылок на источники информации с помощью программных методов.
Если вы нажмете на значок «Управление источниками» в группе «Ссылки и списки литературы», то в окне «Диспетчер источников» при попытке удалить из списка ненужный источник, вы увидите, что кнопка «Удалить» не активна, поэтому у вас не получится воспользоваться этим функционалом.
Ссылки на источники и сам список литературы вам придется удалить вручную.
Выполните следующее:
- Щелкните по полю со списком литературы.
- Нажмите на стрелку около значка «Списки литературы».
- В открывшемся меню нажмите на пункт «Преобразовать список литературы в текст».
- Выделите содержимое блока списка литературы.
- Нажмите на клавишу «Delete» (Del).
- Затем вручную удалите ссылки на источники в тексте документа — поочередно выделяя ссылки, а затем нажимая на клавишу «Del».
Если ссылок много, воспользуйтесь следующим способом:
- Выделите текст документа Word.
- Нажмите на клавиши «Ctrl» + «Shift» + «F9».
- В результате выполнения этой операции, будут удалены все ссылки из данного документа.
Список литературы вам нужно будет удалить вручную.
Выводы статьи
При написании статей, рефератов, дипломных работ или других типов документов, часто ссылаются на другие источники информации. Ссылки на использованные источники помещают в список литературы (цитируемые труды), находящийся в конце документа. Пользователь может создать с помощью нескольких способов список используемой литературы в текстовом редакторе Word.
Похожие публикации:
- Как сделать колонки в Word: полное руководство
- Как сжать документ Word — 13 способов
- Озвучивание текста в Ворде — «Прочесть вслух» или «Проговорить»
- Как сравнить два документа Word — 4 способа
- Как поставить ударение над буквой в Ворде — 3 способа
Надстройки — это подключаемые модули, которые расширяют возможности приложения, в данном случае Microsoft Word. Существуют разные виды надстроек, остановимся пока на надстройках, основанных на шаблонах. Что такое шаблон в Word? Шаблон — это специальный файл, в котором содержатся различные сведения о стилях, структуре, параметрах страниц, содержащихся макросах и так далее, на основе которого можно создавать новые документы.
Существует два вида шаблонов — общие и шаблоны конкретных документов. Файлы шаблонов имеют расширение «.dot» или «.dotm». Общие шаблоны, в том числе и шаблон Normal.dot, в который по умолчанию сохраняются макросы записываемые макрорекордером, содержат настройки, доступные всем документам MS Word. Шаблон конкретного документа содержит настройки, доступные только для документов, основанных на этом шаблоне. В Word имеется ряд встроенных шаблонов документов, например шаблоны писем, контрактов, резюме и прочее. Выбрать нужный шаблон можно при создании нового документа.
Кроме этого пользователи могут сами создавать шаблоны для своих документов. Один и тот же шаблон может использоваться и как общий шаблон и как шаблон документа. Теперь рассмотрим сам процесс загрузки и подключения шаблонов. Чтобы не возникало путаницы, условно разделим шаблоны на «загруженные» и «подключенные». Загруженными будем считать шаблоны, ставшие доступными приложению MS Word, а подключенными будем считать шаблоны, которые не только загружены, но и сделаны активными (в списке шаблонов и надстроек перед ними проставлены флажки). Глобальный шаблон Normal.dot по умолчанию всегда и загружен и подключен. Обратите внимание на скриншот ниже, загружено три шаблона, а подключен из них один (не считая шаблона Normal).
В зависимости от того насколько часто шаблон будет использоваться, расположить его можно в разных папках. Для того, чтобы шаблон автоматически загружался и также автоматически подключался при каждом запуске MS Word, расположить его нужно в папке по адресу Documents and Settings/Ваше имя/Application Data/Microsoft/Word/Startup.
Если шаблон разместить в папке Documents and Settings/Ваше имя/Application Data/Microsoft/Шаблоны, то загружать и подключать его нужно будет вручную (об этом чуть позже), кроме того при каждом следующем запуске приложения Word, этот шаблон будет в списке загруженных шаблонов и надстроек, но снова будет выключенным. В этом списке отображаются не только общие шаблоны из папки «Шаблоны», но и шаблоны, автоматически загружаемые при запуске MS Word.
Еще один типичный случай, когда шаблон расположен в совершенно произвольной папке. Подключение рассмотрим в разных версиях в отдельности.
Microsoft Word 2003
Запускаем приложение, заходим в меню Сервис/Шаблоны и надстройки…
В появившемся диалоговом окне «Шаблоны и надстройки» нажимаем кнопку «Добавить…»
Через открывшееся окно проводника находим папку с нужным шаблоном. После добавления этот шаблон появится в списке шаблонов и надстроек, слева от него будет установлена галочка. Шаблон (надстройка) загружен и подключен.
Microsoft Word 2007
В запущенном приложении нажимаем кнопку Office и переходим в «Параметры Word». В диалоговом окне «Параметры Word» выбираем раздел «Надстройки». В поле «Управление» выбираем пункт «Надстройки Word» либо «Шаблоны» без разницы, после чего нажимаем кнопку «Перейти…».
Появляется диалоговое окно «Шаблоны и надстройки», в нем нажимаем кнопку «Добавить…» и добавляем нужный шаблон.
Это же диалоговое окно можно вызывать нажатием кнопки «Шаблон документа» на вкладке «Разработчик».
Если такая вкладка в Вашем приложении отсутствует, ее необходимо предварительно отобразить, это упростит и ускорит доступ к окну управления шаблонами и надстройками.
Microsoft Word 2010
В запущенном приложении переходим на вкладку «Файл», окрашенную в синий цвет, после чего переходим в «Параметры Word». В диалоговом окне «Параметры Word» выбираем раздел «Надстройки». В поле «Управление» выбираем пункт «Надстройки Word» либо «Шаблоны» без разницы, после чего нажимаем кнопку «Перейти…».
В появившемся диалоговом окне «Шаблоны и надстройки» нажимаем кнопку «Добавить…» и выбираем шаблон, который собираемся установить.
Тоже самое можно проделать еще быстрее, просто нажать кнопку «Шаблон документа» на вкладке «Разработчик».
Но есть один нюанс, вкладка «Разработчик» по умолчанию в приложении отсутствует, ее необходимо предварительно отобразить, на вкладке собраны инструменты для работы с макросами и надстройками и отображение этой вкладки упростит и ускорит доступ к окну управления шаблонами и надстройками.
Microsoft Word 2013
Также как и в Word 2010, в Word 2013 надстройки (шаблоны) можно установить двумя способами:
1. Через вкладку «Файл»/Параметры/Надстройки, в поле «Управление» из выпадающего списка выбрать пункт «Надстройки Word» либо «Шаблоны» и кликнуть по кнопке «Перейти». В появившемся окне менеджера надстроек «Шаблоны и надстройки» при помощи кнопки «Добавить» выбрать файл устанавливаемой надстройки и нажать «ОК».
2. Отобразить на ленте вкладку «Разработчик» и кликнуть по кнопке «Надстройки» в группе кнопок «Надстройки» либо по кнопке «Шаблон документа» в группе кнопок «Шаблоны».
После этого в появившемся окне «Шаблоны и надстройки» кликнуть по кнопке «Добавить» и выбрать файл надстройки, которую необходимо установить.
Процесс установки надстроек (шаблонов) для Word, на примере Word 2013 записан на видео и выложен в youtube (смотреть видео по установке надстроек).
Microsoft Word 2016
В Word 2016 установить надстройку/шаблон можно также, как и в предыдущих версиях, либо через вкладку «Файл»/Параметры/Надстройки с выбором пункта «Надстройки для Word» в поле «Управление», либо отобразить на ленте вкладку «Разработчик», кликнуть по кнопке «Надстройки» либо «Шаблон документа» и при помощи кнопки «Добавить» выбрать файл надстройки, которые требуется установить.
Автозагрузка надстроек в Microsoft Word
Чтобы надстройка автоматически загружалась и подключалась при запуске Word, её необходимо разместить в определенной папке по адресу …/Microsoft/Word/Startup. Если в папке …/Microsoft/Word нет папки Startup, то её можно создать вручную. Та часть пути к папке, которая обозначена многоточием, может различаться в зависимости от версий Windows и Office. Универсальный способ при помощи которого можно определить весь путь к папке автозагрузки, независимо от версий операционной системы и Office — найти место расположения шаблона Normal.dot или Normal.dotm, подняться на один уровень вверх, это будет папка «…/Microsoft» найти и перейти в папку «Word». Путь к папке автозагрузки должен выглядеть примерно так:
C:UsersВашеИмяAppDataRoamingMicrosoftWordSTARTUP
Другие материалы по теме:
Вопрос тот же, что и в заголовке, но исключая работу через сервер офиса в Interop (на слабых компах с новым офисом это работает просто ужасно).
В целом по функционалу полностью устраивает OpenXml SDK, но очень уж он громоздкий и почти нет «готовых» функций, всё надо писать в «лоб» (что в целом можно, но ведь наверняка кто-то всё это уже сделал).
Есть ли что-то бесплатное и более удобное чем OpenXml (пусть даже основанный на нем).
Тот же https://github.com/JanKallman/EPPlus из ссылки выше — платный. Из рекомендаций СтакОверфлоу тоже подключил какую-то библиотеку (уже забыл название), всё очень удобно — только создает дополнительный лист с надписью «это триал блабла, перейдите по ссылке, получите бесплатный код на год…». В общем не очень интересный вариант.
Можно и дальше перебирать варианты, но может кто подскажет с высоты опыта, что сейчас наиболее удобное?
Как создать список источников в Word
Пожалуй, любой, кому приходилось создавать список литературы знает, какая это головная боль. Сначала ищешь источники, расставляешь ссылки на них в тексте, а потом тратишь еще больше времени на то, чтобы собрать все их вместе. Да еще не перепутать ненароком! А уж про оформление согласно стандартам, вообще вспоминать не хочется.
Но если составление списка литературы так важно, неужели в Word нет инструмента, который делает этот процесс проще? Конечно есть. Однако, знает про него немного людей, а умеют им пользоваться еще меньше. Именно поэтому в этой статье мы вам расскажем, как правильно составить список источников с помощью готовых инструментов Word.
Представим, что мы пишем статью.
Выделенное предложение было взято из другой книги. Укажем, из какой именно. Вот, как это делается:
1. Помещаем курсор в конец фрагмента.
2. Во вкладке «Ссылки» нажимаем на иконку «Вставить ссылку». Выбираем команду «Добавить новый источник».
3. Открывается окно, в котором мы можем создать новый источник.
4. Для начала выберем его тип. Это может быть книга, статья, материалы конференции и многое другое.
Это может быть книга, статья, материалы конференции и многое другое.
5. Далее заполняем остальные поля:
Обратите внимание, что фамилию и инициалы нужно разделять запятой.
• Если книгу писало несколько человек, то мы можем поставить галочку напротив слов «Корпоративный автор» и указать всех авторов.
• Если вам нужно указать больше сведений – поставьте галочку вот здесь . Дополнительные поля тут же отобразятся.
6. Как только указали необходимые данные, применяете настройки. В тексте тут же появляются имя автора и год публикации книги.
7. Повторяете весь процесс для каждого источника, который у вас есть.
Когда все книги добавлены, создаем список литературы.
1. Ставите курсор в нужном месте и нажимаете на иконку «Список литературы».
2. Выбираете, как назвать библиографию: «Список литературы», «Ссылки», или «Цитируемые труды». Нажимаете на нужный вариант.
3. В документе тут же появляется список литературы.
Заметьте, все источники в нем уже расположены в алфавитном порядке и отформатированы по стандарту. Кстати, выбрать его вы можете самостоятельно тут:
Итак, теперь вы знаете, что c помощью Word в документ можно добавлять источники и создавать на их основе список литературы. Это очень удобные инструменты, так как они позволяет не только добавить источники и собрать ссылки, но и расположить их по порядку, а также отформатировать их в соответствии с указанным стилем.
Как в Microsoft Word сделать библиографию по ГОСТ 7.0.5-2008
Каждому человеку, занимающемуся научной работой и, приходилось сталкиваться с проблемой оформления списка литературных источников в Microsoft Word по ГОСТ 7.0.5-2008 (когда по требованиям необходимо оформить список по ГОСТ в квадратных скобках). Не буду описывать мучения, если вы сталкивались, то и так поймете о чем речь. В статье я с вами поделюсь способами, как в Microsoft Word сделать библиографию по ГОСТ 7.0.5-2008, найденными мною в сети!
Содержание [убрать]
Сложный способ – использование стилей xsl
В word’e есть утилита, которая позволяет управлять источниками литературы. Найти ее можно во вкладке Ссылки, а называется “Ссылки и списки литературы”. Эта утилита имеет несколько встроенных стилей, 2 из которых называются “ГОСТ – сортировка по именам” и “ГОСТ – сортировка по названиям”. Если вы уже пробовали ими воспользоваться, то вы уже знаете, что к современному ГОСТ’у 7.0.5-2008 они не имеют отношения. Отмечу, что эта утилита ужасно не удобна и создание библиографии в ней отнимает огромное количество времени. Однако, если вы уже проделали большую работу и создали в ней свой список литературных источников, а проблема заключается лишь в оформлении библиографии по ГОСТ’у, то первый способ как раз для вас.
Итак, согласно ГОСТ 7.0.5-2008, может быть два варианта оформления: 1. Сортировка по мере появления ссылок в тексте; 2. Сортировка по авторам. Каждому из вариантов соответствует свой стиль, о том, как их установить и использовать, читайте далее:
Библиография согласно ГОСТ 7.0.5-2008 – нумерование ссылок в тексте по порядку упоминания
- Скачиваем файл стиля GOST-R-7.0.5-2008.xsl (страница проекта на GitHub: gost-r-7.0.5-2008 )
- Читаем readme (необязательно, там такая же инструкция, что и здесь), затем копируем файл стиля:
- для Word 2010 — в директорию [System Volume]:Program FilesMicrosoft OfficeOffice 14BibliographyStyle ;
- для Word 2013 — в [System Volume]:Users[User Name]AppDataRoamingMicrosoftBibliographyStyle
Перезапускаем Word и в меню “Ссылки” выбираем стиль “ГОСТ Р 7.0.5-2008 (сортировка по порядку включения)” . Сохраняем документ и работаем с источниками
Вставляем в нужное место документа список литературы и не забываем его периодически обновлять.
Библиография согласно ГОСТ 7.0.5-2008 – сортировка по авторам
- для Word 2010 — в директорию [System Volume]:Program FilesMicrosoft OfficeOffice 14BibliographyStyle ;
- для Word 2013 — в [System Volume]:Users[User Name]AppDataRoamingMicrosoftBibliographyStyle
-
Запускаем BibWord Extender, указываем в нем расположение папки Program FilesMicrosoft OfficeOffice 14BibliographyStyle (он поможет это сделать сразу):
Выбираем свой документ и убеждаемся, что выбран нужный стиль библиографии (не снимайте галочку «Create backup», она делает резервную копию документа):
Ps: Благодарим пользователя det-random за кучу потраченного времени на реализации данного способа!
Простой способ – Mendeley
Когда я сделал все, что описано в первом способе и все заработало, я уже думал на этом остановиться. Однако случайно на одной из страниц увидел упоминание о программе Mendeley . Решил посмотреть, что же она из себя представляет. И не прогадал! Судя по количеству фич, бесплатный (. ) Mendeley превосходит платные аналоги, такие как EndNote, RefWorks, Zotero, Papers.
Mendeley оказался на редкость удобным в использовании, интуитивно понятным, имеет возможность синхронизации между устройствами, кроссплатформенный, дает 2Gb места под хранение оригиналов статей в pdf и других форматах. Заинтересовало? Тогда приступим!
- Проходим несложную регистрацию на mendeley.com
- Скачиваем десктопную версию для Windows Mendeley-Desktop-1.13.8-win32.exe
- Устанавливаем, а затем запускает клиент.
- Вводим почту и пароль, указанные при регистрации.
- Теперь можем приступить к работе.
- Перетаскиваем файлы прямо в клиент, либо открываем в меню
- Программа сразу постарается автоматически заполнить поля “Автор, Название, Год, Где опубликовано
- Если программа не корректно распознала, то в левой колонке вы всегда можете отредактировать, или воспользоваться поиском по названию. Если статья будет найдена в онлайн библиотеке Mendeley, то она автоматически исправит ошибки.
- Вы также можете разложить статьи по удобным для вас папкам.
Установка плагина для MS Word
Перейдем к самому вкусному: плагин для Microsoft Word!
-
Переходим в меню Tools -> Install MS Word Plugin .
Выбираем нужный нам стиль:
- Russian GOST R 7.0.5-2008 (Russian) – сортировка по авторам
- Russian GOST R 7.0.5-2008 (numeric) – сортировка по порядку упоминания
Теперь мы можем непосредственно пользоваться:
- Ставим курсор там, где нужно вставить ссылку на литературный источник
- Нажимаем кнопку “Insert Citation” .
- В появившемся окне ищем нужный нам источник
На этом я заканчиваю эту статью, думаю с остальными возможностями программы Mendeley вы сможете разобраться самостоятельно, а я надеюсь, что вам удалось решить насущную проблему о том, как оформить в MS Word список литературы по ГОСТ’у 7.0.5-2008 в квадратных скобочках ))).
Библиография в Word’е 2010 и 2013 по ГОСТ Р 7.0.5-2008
О важном для студентов, аспирантов и не только: как сделать список литературы в ворде по ГОСТ Р 7.0.5-2008.
Каждому известны мучения при составлении списка источников в ворде, когда приходится либо считать порядок включения источников вручную, либо составлять список по алфавиту и затем проставлять ссылки. Самые продвинутые пользователи знают, что можно сделать список литературы в виде нумерованных абзацев с закладками, на которые в тексте можно делать перекрестные ссылки и в несложных случаях добиваться желаемого. Также продвинутые пользователи знают, что в ворде можно делать библиографии, но не по ГОСТу, хотя американские стили присутствуют.
Когда дело доходит до подготовки кандидатской диссертации, список литературы резко становится больной темой. Ручные и полуавтоматические методы работают все хуже и хуже, да и форматировать список по ГОСТ 7.0.5–2008 вручную становится напряжно. Настолько напряжно, что я таки задался вопросом, как сделать рабочий стиль библиографии на возможностях ворда, и открыл имеющиеся стили в текстовом редакторе. Посмотрел. Полистал простыню икс-эс-эля. И ничего не понял. Закрыл нафиг. Коллеги в русском интернете тоже ничего работоспособного не создали, и это через четыре года после принятия стандарта!
Погуглив глубже, я понял, что не все так беспросветно. Добрые люди из проекта BibWord сделали шаблон стиля со всеми необходимыми базовыми преобразованиями XSLT, и можно было взять его за основу. Долго ли, коротко, но я написал стиль, который умеет формировать список литературы по ГОСТу, нумеровать ссылки в тексте по порядку упоминания и различать формат для англоязычных и русскоязычных источников. Последнее — вообще за гранью всех попыток, которые удалось нагуглить. Я молодец! И хоть пришлось повозиться целую неделю в перерывах между работой, читая 7000-страничные спецификации Office Open XML, я сделал полностью рабочий стиль библиографии.
Итак, как этим пользоваться.
1. Скачайте файл стиля по этой ссылке: GOST-R-7.0.5-2008.xsl. (На гитхабе: gost-r-7.0.5-2008.)
2. Почитайте readme (необязательно), скопируйте файл стиля:
- для Word 2010 — в директорию [System Volume]:Program FilesMicrosoft OfficeOffice 14BibliographyStyle;
- для Word 2013 — в [System Volume]:Users[User Name]AppDataRoamingMicrosoftBibliogr aphyStyle
3. Запустите (или перезапустите) ворд и в меню «Ссылки» выберите стиль «ГОСТ Р 7.0.5-2008 (сортировка по порядку включения)». Сохраните документ и работайте с источниками.
При создании источника обязательно указывайте язык — английский или русский, иначе по умолчанию будет английский.
4. Вставьте в нужное место документа список литературы и не забывайте его периодически обновлять.
Чтобы сортировать источники по авторам, нужно проделать те же шаги и еще пару дополнительных. Сначала как в прошлом варианте:
2. Скопируйте его в директорию [System Volume]:Program FilesMicrosoft OfficeOffice 14BibliographyStyle ([System Volume]:Users[User Name]AppDataRoamingMicrosoftBibliogr aphyStyle — для Word 2013).
3. В ворде в меню «Ссылки» выберите стиль «ГОСТ Р 7.0.5-2008 (сортировка по именам)» (если стиль не появился, сначала перезапустите ворд). Сохраните документ и закройте ворд.
4. Главное отличие! Скачайте программу BibWord Extender со страницы проекта BibWord. Резервная ссылка: BibWordExtender2.zip.
4.1. Запустите BibWord Extender, укажите в нем расположение папки Program FilesMicrosoft OfficeOffice 14BibliographyStyle (он поможет это сделать сразу):
4.2. Выберите свой документ и убедитесь, что выбран нужный стиль библиографии (не снимайте галочку «Create backup», она делает резервную копию документа):
4.3. Нажмите кнопку «Extend».
4.4. Откройте документ в ворде и снова выберите стиль «ГОСТ Р 7.0.5-2008 (сортировка по именам)».
5. Дальше работайте как в предыдущем случае.
Сразу нужно сказать, что стиль полноценно работает только в Word 2010, потому что Word 2007 не соблюдает собственный же стандарт. Об этом есть запись в readme, и это печально. Я не стану жертвовать возможностью работы со ссылками на английском языке ради Office 2007, хотя желающие могут форкнуть проект на гитхабе и доработать стиль напильником.
Желаю всем успешного написания текста диссертации и удачной защиты!
Update: Работу под 2013-й ворд исправил github-юзер skkap, за что ему большое спасибо.
Лайфхаки для студентов: как сделать автоматический список литературы по алфавиту в Word?
Образец
Думаете, что создать автоматический список литературы в Ворде так просто? Не тут-то было! При заполнении этой страницы студенты и учащиеся сталкиваются с массой проблем: циферки, точечки, пунктуация и много чего еще.
Но на самом деле всей этой мороки можно избежать, если знать кое-какие «фишечки», о которых мы вам сейчас и расскажем.
Список литературы: что это?
Сегодня любая студенческая работа – официальный документ. А посему и оформлены они должны как официальные документы по всей форме.
А форма гласит, что любые материалы, используемые в ходе создания любой работы, должны быть перечислены отдельным списком, коим и называется библиографический список, или список литературы.
Списком литературы называется перечень источников (нормативных актов, статей, книг, журналов и т.д.), данные из которых автор использовал при создании своей работы.
Часто на него никто не обращает внимания, однако закон есть закон, и если список литературы должен быть в документе, значит никто не примет у вас этот документ не только без списка литературы, но даже если он будет неправильно оформлен.
Автоматическое создание списка литературы в Word 2003, 2007 и 2010
Существует волшебная и очень умная программа Word, с которой вы, конечно же, знакомы. Оказывается можно в Ворде сделать автоматический список литературы и не мучиться самому.
Все очень просто. Ставите курсор на место расположения списка литературы. Открываете меню Ссылки, выбираете вкладку Список литературы. В выпадающем списке выбираете тот вариант списка, который вам нужен. Созданная вставка не покажет вам ничего, кроме заготовки, с которой мы и будем работать далее.
Образец 1
Кстати! Для наших читателей сейчас действует скидка 10% на любой вид работы
Шаг 2
Теперь курсор помещает в конце абзаца, где необходимо сделать ссылку на источник. Открываем снова меню Ссылки/Вставить ссылку/Добавить новый источник.
Образец 2
У вас появится окошко, где вам остается только заполнить необходимые графы (автор, название источника, место, год, издательство и так далее).
Обратите внимание, что в графе Тип источника может быть не только книга, но и электронный ресурс, и статья, и прочие типы источников.
Образец 3
Шаг 3
Как только вы добавите источник, на месте, куда вы помещали курсор, появятся скобки с отсылкой на список литературы.
Если в самом списке литературы к этому моменту не отобразились изменения, зайдите в его настройки и нажмите кнопку Обновление ссылок и списка литературы.
Образец 4
Шаг 4
Если вам вдруг понадобится дублировать эту же самую ссылку в других абзацах, Word будет сам предлагать вам ее (уже заполненную) при нажатии вставки ссылки.
Образец 4
Вот и все, работать с остальными пунктами списка литературы будет так же просто. Так создаются и оформляются автоматические библиографические списки в Microsoft Word.
Ну а если у вас что-то не получается или на вашем компьютере установлена слишком старая версия Word, или еще куча отговорок, чтобы не делать эту скучную работу, обращайтесь за помощью в учебный сервис, специалисты которого знают толк в своем деле.
Пример 54. Проверка
правописания в текстовом поле с помощью
обращения к MS
Word
Пакет приложений
Microsoft
Office
может являться сервером OLE-объектов,
и его функции могут использоваться
другими приложениями. Продемонстрируем
такое использование. Для этого создадим
программу, которая позволяет пользователю
ввести какие-либо слова, предложения в
текстовое поле и после нажатия
соответствующей кнопки проверить
орфографию введенного текста. Для
непосредственной проверки орфографии
воспользуемся функцией СheckSpelling
объектной библиотеки MS
Word.
Запустим
Visual
Studio 2010,
выберем
новый
проект
Windows
Forms Application С#.
Перетащим
из панели элементов Toolbox
в форму текстовое поле. Чтобы растянуть
его на всю форму в свойстве Multiline
текстового поля укажем True
(разрешим введение множества строк).
Также с панели элементов перетащим
кнопку Button.
Мы должны получить примерно такой
дизайн, который представлен на рис.
9.1.
Рис. 9.1.
Фрагмент работы программы проверки
орфографии
Далее к текущему
проекту добавим объектную библиотеку
MS
Word
(библиотеку компонентов). Для этого в
пункте меню Project
выберем команду Add
Refer.
Затем, если на вашем компьютере установлен
MS
Office
2003, то на
вкладке СОМ
дважды щелкнем по ссылке на библиотеку
Microsoft
Word
11.0 Object
Librrary.
Если же установлен MS
Office
2007, то дважды
щелкнем на ссылке Microsoft
Word
12.0 Object
Library.
Эта объектная библиотека соответствует
файлу, расположенному по адресу:
C:Program
FilesMicrosoft
OfficeOFFICE11MSWORD.OLB(
или …OFFICE12MSWORD.OLB
для MS
Office
2007).
Теперь убедимся
в том, что данная ссылка благополучно
установлена. Для этого в обозревателе
решений раскроем узел References,
здесь среди прочих ссылок идим строку
Microsoft.Office.Intеrop.Word.
Кроме того, в папке проекта objx86Debug
появился файл Interop.Office.dll.
Tаким
образом, мы подключили библиотеку
объектов MS
Word.
Далее введем программный код, представленный
в листинге 9.1.
Листинг 9.1.
Проверка орфографии
//Добавляем эту
директиву для более коротких выражений
using Ворд
= Microsoft.Office.Interop; System;
using
System;
using
System.Windows.Forms;
//Программа позволяет
пользователю ввести какие-либо слова,
предложения в текстовое поле и после
нажатия //соответствующей кнопки
проверить орфографию введенного текста.
Для непосредственной проверки орфографии
//воспользуемся функцией CheckSpelling
объектной библиотеки MS
Word,
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
Орфография
{ //В пункте
меню Project
выберем команду Add
Reference.
//Затем, если на
вашем компьютере установлен MS
Office
2007,
//то на вкладке СОМ
дважды щелкнем по ссылке
//на
библиотеку
Microsoft Word 12.0 Object Libary.
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
textBox1.Clear();
button1.Text = «Проверка
орфографии»;
}
Private
void button1_Click(object sender, EventArgs e)
{
var Ворд1
= new Ворд.Word.Application();
Ворд1.Visible
= false;
Ворд1.Documents.Add();
// Открываем новый документ
// Копируем содержимое
текстового окна в документ
Ворд1.Selection.Text
= textBox1.Text;
// Проверка
орфографии:
Ворд1.ActiveDocument.CheckSpelling();
// Копируем результат
назад в текстовое поле
textBox1.Text
= Ворд1.Selection.Text;
Ворд1.Documents.Close(Ворд.Word.WdSaveOptions.wdDoNotSaveChanges);
// или
Ворд.ActiveDocument.Close
// (Ворд.Word.WdSaveOptions.wdDoNotSaveChanges);
// Это
важно:
Bopд1.Quit();
Ворд1 = null;
}
}
}
Как видно из текста
программы, сразу после InitializeComponent
очищается текстовое поле и инициализируется
название кнопки Проверка
орфографии.
При обработке события «щелчок по
кнопке» Button1.click
создается новый объект класса
Word.Application
и командой Documents.Add
открывается новый документ. Далее весь
введенный пользователем текст копируется
в этот документ. Затем происходит
непосредственная проверка орфографии
командой CheckSpelling.
Далее документ закрываем без сохранения
изменений wdDoNotSaveChanges.
После нажатия кнопки Проверка
орфографии
получим диалоговое окно, подобное
представленному на рис. 9.2.
Рис. 9.2.
Проверка правописания в текстовом поле
Выберем правильный
вариант написания слова и щелкнем на
кнопке 3aменить,
при этом диалоговое окно закроется, а
в нашем текстовом поле на форме окажется
исправленное слово.
Убедиться в
работоспособности программы можно,
открыв решение Орфография.sln
в папке Орфография.
Пример 55. Вывод
таблицы средствами MS
Word
В данной книге мы
уже рассматривали способы формирования
таблицы. Здесь
мы обсудим
способ создания таблицы, используя
функции MS
Word.
Вообще говоря программировать
взаимодействие программы на Visual
С#2010 с
различными офисными приложениями (Word,
Excel,
Access,
PowerPoint
и т. д.), а также с AutoCAD,
CorelDRAW
удобно, поскольку во все эти приложения
встроен язык VBA
(Visual
Basic
for
Applications),
в арсенале которого используются
программные объекты, названия и назначения
которых в многом схожи с объектами,
используемыми в VisualС#.
Причем есть возможность записи макроса
с последующим просмотром соотвествующей
VBA-программы.
Например, мы хотим посмотреть, как
организована вставка таблицы в редакторе
MS
Word.
Для этого запускаем MS
Word,
затем в меню Сервис
выбираем команду Макрос
| Начать
запись, далее
в диалоговом окне Запись
макроса
указываем имя макроса и щелкаем на
кнопке ОК.
Теперь в текст MS
Word
вставляем таблицу, используя пункты
меню Таблица
| Вставить | Таблица
и т. д. После заполнения таблицы нажимаем
кнопку Остановить
запись. Далее
помощью комбинации клавиш <Alt>+<F11>
откроем окно Microsoft
Visual
Basil
здесь мы увидим текст макроса на языке
VBA.
Из этого текста мы можем понять основной
принцип, имена используемых объектов,
функций, свойств и проч.
А теперь рассмотрим
уже конечный результат— программу на
Visual
С#2010, которая,
используя функции MS
Word,
строит таблицу. Итак, запускаем Visual
Studio
2010, выбираем
новый проект, указываем шаблон Windows
Form
Application
С#. Далее к
текущему проекту добавим объектную
библиотеку MS
Word.
Для этого в меню Project
укажем команду Add
Reference
и на появившейся вкладке СОМ
дважды щелкнем по ссылке на библиотеку
Microsoft
Word
11.0 Object
Library
(или другая версия MS
Word).
На экранную форму перенесем командную
кнопку Button,
чтобы работа программы выглядела более
выразительно. То есть именно после
щелчка на кнопке будет формироваться
таблица и вызываться MS
Word
для ее отображения. Далее введем
программный код, представленный в
листинге 9.2.
Листинг 9.2. Вывод
таблицы средствами MS
Word
// Программа вывода
таблицы средствами MS
Word:
запускается программа,
// пользователь
наблюдает, как запускается редактор MS
Word
//и автоматически
происходит построение таблицы
using
System;
using
System.Windows.Forms;
// Добавляем эту
директиву для более коротких выражений
using
Ворд
= Microsoft.Office.Interop;
// Дpyгие
директивы using
удалены, поскольку они не используются
в данной программе
namespace
TaблицaWord
(
public
partial class Form1:Form
{
public
Form1()
{ // В меню
Project
укажем команду Add
Reference
и на появившейся
// вкладке
СОМ
дважды
щелкнем
по
ссылке
на
библиотеку
//
Microsoft Word 12.0 Object Library
InitializeComponent();
Button1.Text
= «Пуск»;
base.Text = «Построение
таблицы»;
}
private
void buttonl_Click(object sender, EventArgs e);
{
string[]
Imena
= {«Андрей — раб», «Света-X»,
«ЖЭК», «Справка по тел»,
«Александр Степанович»,
«Мама — дом»,
«Карапузова Таня», «Погода
сегодня», «Театр Браво»};
string[]
Tel = {«274-88-17», «+38(067)7030356»,
«22-345-72», «009», «223-67-67 доп
32-67», «570-38-76», «201-72-23-прямой
моб»,
«001», «216-40-22»};
var Ворд1
= new Ворд.Word.Application();
Ворд1.Visible
= true;
Ворд1.Documents.Add();
// Открываем новый документ
Ворд1.Selection.TypeText(«ТАБЛИЦА
ТЕЛЕФОНОВ»);
// Создаем таблицу
из 9 строк и 2 столбцов;
// автоподбор ширины
столбцов —
// по содержимому
ячеек (wdAutoFitContent)
Ворд1.ActiveDocument.Tables.Add(Ворд1.Selection.Range,
9, 2,
Ворд.Word.WdDefaultTableBehavior.wdWord9TableBehavior,
Ворд.Word.WdAutoFitBehavior.wdAutoFitContent);
// Заполнять ячейки
таблицы можно так:
for (int i
= 1; i <= 9; i++)
{
Ворд1.ActiveDocument.Tables[1].Cell(i,
1). Range.InsertAfter(Imena[i — 1]);
Ворд1.ActiveDocument.Tables[1].Cell(i,
2). Range.InsertAfter(Tel[i — 1]);
}
//
Перевести
курсор
(Selection) за
пределы
таблицы
Ворд1.Selection.MoveDown(Ворд.Word.WdUnits.wdLine,
9);
Ворд1.Selection.TypeText(«Какой-либо
текст
после
таблицы»);
//
Сохранять
нет
смысла,
но
это
решит
пользователь
// W.ActiveDocument.SaveAs(«С:a.doc»)
}
}
}
Заметим, что
содержимое текстовой таблицы такое
же,- как и в примере 44 (см.
главу 7).
То есть наш
сюжет меняется, а действующие персонажи
остаются npeжними.
Данные находятся в двух массивах: Imena()
и Tel().
Далее создаем
экземпляр объекта Word.Application
и открываем новый документ Document.Add.
Затем демонстрируем, как можно добавлять
какие-либо тексты в новый документ из
С#-программы,
например, мы вводим в активный докумет
текст «ТАБЛИЦА
ТЕЛЕФОНОВ«.
Далее создаем таблицу, состоящую из
девяти строк (рядов) и двух столбцов,
причем ширина столбцов будет регулироваться
в зависимости от содержимого ячеек
(wdAutoFitContent).
Затем в цикле заполняем ячейки таблицы
и выводим курсор (Selection)
за пределы таблицы, чтобы написать
какой-либо текст.
Рис. 9.3.
Программно сформированная таблица в
редакторе MS
Word
После запуска этой
программы очень красиво, прямо на наших
глазах в редакторе MS
Word
сформируется таблица (рис. 9.3), которую
при желании можно редактировать.
сохранять и распечатывать на принтере.
Убедиться в работоспособности программы
можно, открыв решение ТаблицаWord.sln
в папке TaблицaWord.
Пример 56. Обращение
к функциям MS
Excel
из Visual
С# 2010
Очень заманчиво
обратиться из какой-нибудь вашей
С#-программы
к функциям Microsoft
Excel.
Табличный редактор MS
Excel
содержит очень мощные средства для
сложных вычислений и анализа данных,
которые могут значительно расширить
возможности ваших программ.
В данной программе
мы продемонстрируем буквально в трех
строчках программного кода обращение
к одной простой функции MS
Excel,
а именно получение значения числа π
= 3,14. Число π
представлено
в классе Math
языка С#.
Но цель данной программы — показать
легкость доступа к функциям MS
Excel.
Как обычно, запустим
Visual
Studio
2010, далее в
окне New
Project
выберем шаблон Windows
Forms
Application
С# и щелкнем
на кнопке ОК.
Проектируемую экранную форму сделаем
совсем маленькой, поскольку число π
будем выводить в строку заголовка формы.
Чтобы добавить в
текущий проект возможности MS
Excel,
следует подключить библиотеку объектов
MS
Excel.
Для этого в пункте меню Project
выберем команду Add
Reference.
Затем, если на вашем компьютере установлен
пакет MS
Office
2003, то на
вкладке СОМ
дважды щелкнем по ссылке на библиотеку
Microsoft
Excel
11.0 Object
Library.
Если же установлен MS
Office
2007, то дважды
щелкнем на ссылке Microsoft
Excel
12.0 Object
Library.
To
есть процедура добавления новой
библиотеки объектов такая же, как и в
примерах об использовании возможностей
MS
Word,
а названия пунктов меню сохранились
почти такими же, как в предыдущих версиях
Visual
Studio.
Подключить новую библиотеку объектов
в текущий проект можно также через
контекстное меню окна Solution
Explorer
(Обозреватель решений), щелкнув на
пункте Add
Reference.
Таким образом, мы
подключили библиотеку объектов MS
Excel.
В окне Soluton
Explorer
(чтобы его добавить, следует щелкнуть
на значке Solution
Explorer)
Щелкните на значке Show
All
Files,
а затем раскройте дерево References.
Одной из ветвей дерева будет ветвь
Excel.
Щелкнув правой кнопкой мыши на значке
этой ветви и выбрав пункт View
in
Object
Browser,
мы увидим объекты данной ветви в окне
Object
Browser
(Обозреватель объектов). Найдем объект
WorksheetFunction,
при этом в окне Members
of
‘WorksheetFunction
увидим доступные нам функции MS
Excel
для объекта WorksheetFunction.
Теперь в программном коде обратимся к
одной из этих функций, а именно функции
Pi
().
Для этого перейдем
на вкладку программного кода Form1.cs
и напишем программный код, приведенный
в листинге 9.3.
Листинг 9.3.
Обращение к одной из функций MS
Excel
// Программа
обращается к одной простой функции
объектной библиотеки
// MS
Excel
для получения значения числа Пи = 3,14
using
System.Windows.Forms;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
ЕхсеlПи
{ // Чтобы добавить
ссылку на объектную библиотеку Excel,
в пункте меню
// Project
выберем команду. Add
Reference.
Затем, если на вашем компьютере
//
установлен
MS Office 2007, то
на
вкладке
СОМ
дважды
щелкнем
по
ссылке
// на
библиотеку
Microsoft Excel 12.0 Object Library,
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
// Создание
экземпляра
класса
Excel.Application
var xl =
new Microsoft.Office.Interop.Excel.Application();
double PI =
xl.WorksheetFunction.Pi();
// Выводим значение
ПИ в строку заголовка формы
this.Text
= «PI
= » + pi;
}
}
}
Как видно, сразу
после вызова метода InitializeComponent
при обработке
бытия загрузки формы создается объект
Excel.Application,
с помощью которого( имеем доступ для
одной из функций MS
Excel,
возвращающей число π = 3,14.
Результат работы
программы показан на рис. 9.4.
Рис. 9.4.
Вывод числа л
в заголовок
формы
Убедиться в
работоспособности программы можно,
открыв решение ЕхсеlПи.sln
в папке ЕхсеlПи.
Пользоваться
функциями MS
Excel
в Сопрограмме очень перспективно.
Например, оцените возможность решать
сложнейшие в математическом смысле
операционные задачи (т. е. задачи
нахождения максимума/минимума с набором
ограничений), доступные в MS
Excel
через Сервис
| Поиск решения.
Пример 57.
Использование финансовой функции MS
Excel
Рассмотрим еще
один пример обращения к функциям MS
Excel
из программы на С#
2010. Допустим,
вы взяли кредит на покупку квартиры 100
тыс. долларов под 15% годовых, срок
погашения кредита— 10 лет. Требуется
узнать сумму, которую вы вынуждены
будете платить ежемесячно. В русскоязычном
MS
Excel
для подобных расчетов есть функция
ПЛТ(),
на вход которой следует подать месячную
процентную ставку (т. е. в нашем случае
0.15/12), срок погашения кредита в месяцах
(120 месяцев) и размер кредита ($100 тыс.).
Аналогом функции ПЛТ()
является функция (метод) Pmt()
класса WorksheetFunction,
которая имеет такие же аргументы.
Таким образом, мы можем написать С#
-программу с обращением к функции
Pmt()
и проверить результат в русскоязычной
версии MS
Excel.
Список всех методов (функций) объекта
WorksheetFunction
с описанием аргументов можно найти по
адресу: http://msdn.microsoft.com/en—us/library/bb225774.aspx.
Для программирования
обращений к этим функциям из программы,
созданной в Visual
Studio
2010, важно
найти соответствие русскоязычных
функций MS
Excel
и их аналогов в объекте WorksheetFunction
для отладки на тестовых примерах.
Запустим Visual
Studio
2010, далее
закажем новый проект из шаблона Windows
Forms
Application
С#. В
проектируемую экранную форму из панели
Toolbox
перенесем
три метки, три текстовых поля (для ввода
трех вышеперечисленных аргументов
функции Pmt()
и кнопку. В текущий проект подключаем
библиотеку объектов MS
Excel.
Для этого в меню Project
выберем команду Add
Reference,
затем на
вкладке СОМ
дважды щелкнем на ссылке Microsoft
Excel
12.0 Object
Library.
Теперь можно перейти к программному
коду, приведенному в листинге 9.4.
Листинг 9.4.
Использование финансовой функции MS
Excel
//
Программа
использует финансовую функцию Pmt()
объектной библиотеки
//MS
Excel
для вычисления суммы периодического
платежа на основе
// Постоянства сумм
платежей и постоянства процентной
ставки
using
System;
using
System.Windows.Forms;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
ЕхсеlПлт
{
// Для подключения
библиотеки объектов MS
Excel
в пункте меню Project
// выберем
команду
Add Reference. Затем,
если на вашем компьютере
// установлен MS
Office
2007, то на вкладке СОМ дважды щелкнем по
ссылке
//на
библиотеку
Microsoft Excel 12.0 Object Library
public
partial class Form1:Form
{
public
Form1()
{
InitializeComponent();
Label1.Text
= «Год. ставка в %»; label2.Text
= «Срок в месяцах»; label3.Text
= «Размер кредита»;
textBox1.Clear();textBox2.Clear();textBox3.Clear();
this.Text =
«Расчет
ежемесячных
платежей»;button1.Text
= «Расчет»
}
private
void button1_Click(object sender, EventArgs e)
{
try
{
var XL =
new Microsoft.Office.Interop.Excel.Application() ;
double pay
= XL.WorksheetFunction.Pmt(
(Convert.ToDouble(textBoxl.Text))
/ 1200,
Convert.ToDouble(textBox2.Text),
Convert.ToDouble(textBox3.Text));
//
ИЛИ, если использовать функцию Pmt()
из
Microsoft.VisualBasic
//double pay =
Microsoft.VisualBasic.Financial.Pmt(
// (Convert.ToDouble(textBoxl.Text))
/ 1200,
// Convert.ToDouble(textBox2.Text),
// Convert.ToDouble(textBox3.Text));
string ss =
String.Format(
«Каждый месяц
следует платить {0:$#.##} долларов»,
Math.Abs(pay));
MessageBox.Show(ss);
}
catch(Exception
Ситуация)
{
MessageBox.Show(Ситуация.Message,
«Ошибка»,
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
}
}
}
Как видно из текста
программы, сразу после вызова метода
InitializeComponent
очищаются
(clear)
текстовые поля, а также подписываются
названия этих полей с помощью меток
label1—iabel3
и присваивается название кнопки Button1.
Рис. 9.5.
Расчет ежемесячных платежей
Убедиться в
работоспособности программы можно,
открыв решение ExcelПлт.sln
в папке ExcelПлт.
В данном примере
на простом примере мы рассмотрели, как
легко подключиться к библиотеке
объектов MS
Excel
и пользоваться ее функциями. Однако
Функция Pmt()
имеется также в среде Visual
Studio
2010 в
пространстве имен Microsoft
.VisualBasic.
Financial
точно с такими же параметрами. (Более
того, эта функция была еще в Visual
Basic
6.) Для
обращения к этой функции потребовалось
бы подключение к Visual
Basic,
как мы это делали в примере 14 (см.
глава2). То есть
следовало бы в проект добавить
ссылку на библиотеку Microsoft.VisualBasic.dll.
Для этого в пункте меню Project
надо выбрать команду Аdd
Reference,
а на вкладке .NET
дважды щелкнуть на ссылке
Microsoft.VisualBasic.
В этом случае можно было бы обращаться
к функции Pmt(),
как это представлено в комментарии.
Однако в данном примере показана
принципиальная возможность работы с
функциями MS
Excel
из С#-программы.
Пример 58. Решение
системы уравнений р с помощью функций
MS
Excel
Используя функции
MS
Excel,
в своей программе, созданной в Visual
С#2011 можно
решать и более серьезные задачи. Например,
рассмотрим, как решить ] I тему
линейных алгебраических уравнений:
X1
+ X2
+ X3
=
6
Х1
+ Х2
= 3
Х2
+ Х3
=
5
через обратную
матрицу. Исходную
систему уравнений запишем в матричном
виде
А • X = L.
Здесь А
— матрица
коэффициентов при неизвестных; X
— вектор
неизвестных X1,
Х2,
Х3;
L
— вектор
свободных членов 6, 3, 5. Тогда решением
системы будет
выражение
X=A-1•L,
где Х-1
—обратная матрица.
Для нахождения
обратной матрицы в русскоязычной версии
MS
Excel
есть функция МОБР(),
а объект WorksheetFunction
в библиотеке объектов Microsoft
Excel
имеет функцию Minverse().
Для умножения обратной матрицы на вектор
свободных членов есть соответственно
функции мпроиз()
и MMult().
Таких функций нет в Visual
Studio
2010, и в данном
случае мы получаем реальный положительный
эффект от подключения к функциям MS
Excel.
Для программной
реализации решения поставленной задачи
запустим Visual
Studio
2010. Далее
выберем новый проект из шаблона Windows
Forms
Application
С# и щелнем
на кнопке ОК.
В проектируемую форму из панели Toolbox
добавив
метку и растянем ее побольше и симметрично
относительно формы. На ней 6yдем
формировать ответ задачи. Кроме того,
добавим библиотеку объектов MS
Ехel.
Для этого в пункте меню Project
выберем команду Add
Reference
и на вкладке СОМ
отметим библиотеку Microsoft
Excel
12.0 Object
Library,
а затем щелкнем на кнопке ОК.
Программу построим
следующим образом (листинг 9.5): сразу
после выполнения процедуры
InitializeComponent
прямо в тексте программы зададим
(инициализируем) прямую матрицу в виде
двумерного массива и вектор свободных
членов в виде одномерного массива. Затем
после решения системы выведем ответ на
метку label1.
Листинг 9.5. Решение
системы линейных алгебраических
уравнений
// Программа решает
систему уравнений с помощью функций
объектной
//
библиотеки
MS Excel
using
System;
using
System.Windows.Forms;
using
XL
= Microsoft.Office.Interop.Excel.Application;
//
Другие директивы using
удалены, поскольку они не используются
в данной программе
namespace
ЕхсеlСЛАУ
{ // Для подключения
библиотеки объектов MS
Excel
в пункте меню Project
,
//выберем команду
Add
Reference.
Затем, если на вашем компьютере
//установлен MS
Office
2007, то на вкладке СОМ дважды щелкнем по
ссылке
//
на
библиотеку
Microsoft Excel 12.0 Object Library
public
partial class Form1:Form
{
public
Form1()
{
InitializeComponent();
//
Матричное уравнение AX
= L
решаем через
// обратную матрицу: X =
A(-1)L.
//
Здесь (-1) — «знак» обратной матрицы.
//
Решаем систему
// XI + X2
+ Х3 = 6
// XI + Х2 =3
//
Х2 + ХЗ
= 5
// Для этой системы
прямая матрица будет иметь вид
//
double[,] А
= new double[n, n]; // — матрица
коэффициентов
Double[,] А
= {{1, 1, 1},
{1,
1, 0},
{0,
1, 1}};
// double[]
L = new double[n]; // — вектор
свободных
членов
// Свободные члены
Double[] L
= { 6, 3, 5 };
XL XL1 =
new XL() ;
// Вычисление
детерминанта матрицы A
double
det_A
= XL1.Application.WorksheetFunction.MDeterm(A);
// Если det_A
!= 0, то выход из процедуры:
if
(Math.Abs(det_A) < 0.01)
{
Label1.Text
= «Система не имеет решения, посколькуnn»
+ «определитель равен нулю»;
return;
}
//
Получение
обратной
матрицы
оА:
Object oA =
XL1.Application.WorksheetFunction.Minverse(A);
// Умножение обратной
матрицы на вектор свободных членов
Object[,] X
= XL1.Application.WorksheetFunction.MMult(
oA,
XL1.Application.WorksheetFunction.Transpose(L));
// ТАК НАПИСАТЬ
ПРАВОМОЧНО
// double
X1 = (double)X[1, 1] ;
// Формирование
ответа:
Label1.Text
= String.Format(«Неизвестные
равны:nnX1
= {0}; X2
= {1}; X3
= {2}.», X[l,
1], X[2,
1], X[3,
1]);
}
}
}
Как видно из текста
программы, задаем прямую матрицу, причем
присваиваем значения коэффициентов
сразу при объявлении двумерного массива.
Аналогично поступаем с вектором свободных
членов. Согласно требованию объекта
WorksheetFunction
возвращаемые обратная матрица и вектор
неизвестных должны быть объявлены как
объектные переменные. Вначале вычисляем
детерминант ( определитель) прямой
матрицы, используя функцию MS
Excel
Mdeterm().
Если прямая матрица плохо
обусловлена, т.
е. определитель по абсолютному значению
меньше 0.01, то выходим из процедуры и
сообщаем пользователю в метке label1
что система не имеет решения. Если
определитель матрицы больше 0.01, то с
помощью функции MS
Excel
Minverse()
находим обратную матрицу. Далее обратную
матрицу с помощью функции MS
Excel
MMuit()
умножаем на вектор неизвестных, но
прежде его следует сделать вертикальным
массивом с помощью функции MS
Excel
Transpose,
т. е. транспонировать массив l.
Следующим
оператором форматируем ответ в метке
label1.
Результат работы
программы приведен на рис. 9.6. Убедиться
в работоспособности программы можно,
открыв решение ExcelСЛАУ.sln
в папке ЕхсеlСЛАУ.
Рис. 9.6.
Решение системы линейных алгебраических
уравнений
Как видим, довольно
сложные задачи можно решать в коротенькой
программе благодаря обращению к функциям
MS
Excel.
Причем на компьютере, где будет работать
данная программа, вовсе не обязательно
должен быть инсталлирован MS
Excel.
Однако инсталляция вашей программы
должна содержать соответсвующую
dll—библиотеку.
Пример 59. Построение
диаграммы средствами MS
Excel
Очень часто
необходимо изобразить на графике
(диаграмме) какие-либо экономические
показатели или технические измерения
(геодезические, метрологические,
астрономические), например, с целью
принятия каких-либо решений, часто
сделать это надо очень оперативно. Для
этих целей в ячейки рабочего листа MS
Excel
можно ввести измеренные данные, а далее
чтобы получить график, построенный
по этим данным, воспользоваться пунктами
меню Вставка
| Диаграмма.
В данном разделе я покажу, как можно
очень быстро получить график (диаграмму)
из программы Visual
С#2010, используя
средства (объекты компонентной библиотеки)
MS
Excel.
Запустим Visual
Studio
2010, далее,
поскольку экранная форма нам не нужна,
выбираем новый проект из шаблона Console
Application.
Теперь к текущему проекту добавим
библиотеку объектов MS
Excel.
Для этого в пункте меню Project
выберем команду Add
Reference,
далее на вкладке СОМ
отметим библиотеку Microsoft
Excel
12.0 Object
Library
и щелкнем на кнопке ОК.
Затем на вкладке программного кода
введем текст, приведенный в листинге
9.6.
Листинг 9.6.
Построение диаграммы средствами MS
Excel
// Программа строит
график (диаграмму) средствами объектов
// компонентной
библиотеки MS
Excel
using XL =
Microsoft.Office.Interop.Excel;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
ЕхсеlГрафик
{ // Для подключения
библиотеки объектов MS
Excel
в пункте меню Project
// выберем команду
Add
Reference.
Затем на вкладке СОМ дважды щелкнем
// по
ссылке
на
библиотеку
Microsoft Excel 12.0 Object Library
class
Program
{
static void
Main(string[] args)
{
XL.Application
XL1 = new XL.Application();
XL1.Workbooks.Add();
//XL1.ActiveSheet.Range[«A1»].Value
= «Месяц»;
XL1.ActiveSheet.Range[«A2»].Value
= «Март»;
XL1.ActiveSheet.Range(«A3»).Value
= «Anp»;
XL1.ActiveSheet.Range(«A4»).Value
= «Май»;
XL1.ActiveSheet.Range(«A5»).Value
= «Июнь»;
XL1.ActiveSheet.Range(«A6»).Value
= «Июль»;
//XL1.ActiveSheet.Range(«B1»).Value
= «Продажи:»;
XL1.ActiveSheet.Range(«B2»).Value
= 138;
XL1.
ActiveSheet.Range («B3 «) . Value = 85;
XL1.ActiveSheet.Range(«B4»).Value
= 107;
XL1.ActiveSheet.Range(«B5»).Value
= 56;
XL1.ActiveSheet.Range(«B6»).Value
= 34;
XL1.Charts.Add();
// Задаем тип графика
«столбчатая диаграмма» (гистограмма):
XL1.ActiveChart.ChartType
= XL.X1ChartType.xlColumnClustered;
//
Отключаем
легенду
графика:
XL1.ActiveChart.HasLegend
= false;
XL1.ActiveChart.HasTitle
= true;
XL1.
ActiveChart. ChartTitle.
Characters.
Text
= «ПРОДАЖИ ЗА ПЯТЬ МЕСЯЦЕВ»;
// Подпись оси х
XL1.ActiveChart.Axes(XL.XIAxisType.xlValue).HasTitle
= true;
XL1.ActiveChart.Axes(XL.XIAxisType.xlValue).AxisTitle.
Characters.Text
= «Уровни продаж»;
// Подпись оси у
XL1.ActiveChart.Axes(XL.XIAxisType.xlCategory).HasTitle
= true;
XL1.ActiveChart.Axes(XL.XIAxisType.xlCategory).AxisTitle.
Characters.Text
= «Месяцы»;
// Сохранение
графика в растровом файле:
XL1.ActiveChart.Export(«С:\ЕхсеlГрафик.jpg»);
XL1.
Visible
= true;
}
}
}
Вначале программного
кода создаем объект Excel.Application
и рабочую книгу. Далее заполняем ячейки
первого листа: вначале в ячейки Ai
пишем подпи ординат гистограммы, а в
ячейки Bi
— значения
ординат. Затем задаем тип диаграммы—
xlСolumnСlustered,
что соответствует гистограмме (столбиковой
диаграмме). Далее указываем название
гистограммы и подписываем горизонтальную
и вертикальную оси. Затем с помощью
функции Export()
сохраняем полученную диаграмму на диске
в виде jpg-файла.
Графическое отображение этого файла
можно но посмотреть на рис 9.7.
Далее делаем
видимой (visible
= true)
построенную диаграмму на рабочем листе
MS
Excel.
Убедиться в
работоспособности программы можно,
открыв решение ЕхсеlГрафик.sln
в папке ЕхсеlГрафик.
Рис. 9.7.
Графическое отображение полученного
jpg-файла
Пример 60. Управление
функциями AutoCAD
из программы на Visual
С# 2010
Если результатом
работы вашей программы должен быть
какой-либо векторный чертеж (техническая
документация, строительный чертеж,
географическая карта и проч.), то самый
быстрый путь, создания такого приложения
— это обращение к Функциям AutoCAD
из вашей С#-программы.
AutoCAD
(Computer—Aided
Design)
— Это 2- и 3-мерная система автоматизированного
проектирования и черчения. Эта система,
также как и пакет приложений Microsoft
Office,
может являться сервером OLE-oбьектов,
и его функции могут использоваться
другими приложениями.
Графическими
примитивами векторной графики являются
отрезки, дуги, окружности, тексты, которые
можно выводить под различными углами
к горизонту, и, может быть, еще некоторые
простейшие геометрические фигуры.
Чертеж, подлежащий построению, состоит
из совокупности таких элементов.
Программа на С#2010
путем обращения к соответствующим
функциям AutoCAD
формирует такой чертеж и записывает
его в dwg-файл.
Пользователь может просмотреть этот
файл в среде AutoCAD,
отредактировать его и вывести на печать.
Приступаем к
программированию поставленной задачи.
Как обычно после запуска Visual
Studio
2010, выбираем
шаблон Windows
Forms
Application
С#. Далее
следует подключить библиотеку объектов
AutoCAD,
для этого в пункте меню Project
выбираем команду Add
Reference,
затем на вкладке СОМ
дважды щелкаем на ссылке AutoCAD
2000 Object
Library.
Эта ссылка соответствует файлу
ACAD.TLD
в соответствующей папке Program
Files,
где расположен результат инсталляции
AutoCAD.
Теперь после компиляции проекта в папке
objx86Debug
явится файл Interop.AutoCAD.dll.
Таким образом, мы
подключили библиотеку объектов AutoCAD
версии 2000
Если на вашем компьютере инсталлирована
другая версия AutoCAD,
то действуют аналогично. Программа,
выводящая в dwg-файл
два отрезка, а также две горизонтально
и вертикально ориентированных строки
текста, представлена в листинге 9.7.
Листинг 9.7.
Построение отрезков и двух строк текста
в AutoCAD
// Программа строит
средствами объектов библиотеки AutoCAD
элементарный
// чертеж из отрезков
и некоторого текста. Этот чертеж
сохраняется в файле
// формата DWG.
Конкретнее: эта программа запускает
AutoCAD
2000i,
рисует
// два отрезка, два
текстовых объекта, сохраняет чертеж в
файле С:Чертеж.dwg
//и завершает работу
AutoCAD
using
System;
using
System.Windows.Forms;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
АСАDЧертеж
{ // Следует
подключить библиотеку объектов AutoCAD.
Для
этого
надо
выбрать
// Project
| Add Reference — вкладка
COM — AutoCAD 2000 Object Library – OK
public
partial class Form1:Form
{
public
Form1()
{
InitializeComponent();
AutoCAD.AcadApplication
ACAD1 = new AutoCAD.AcadApplication();
AutoCAD.AcadDocuments
Docs1 = ACAD1.Documents;
AutoCAD.AcadDocument
Docl = Docs1.Add();
//
Видимость:
ACAD1.Visible = true; // Точки:
double[] T1
= { 10, 10, 0 };
double[]
T2 = { 200, 200, 0 };
double[] T3
= { 200, 10, 0 };
double[] T4
= { 15, 200, 0 };
//
Нарисовать
отрезок
от
точки
T1 до
точки
Т2:
Doc1.ModelSpace.AddLine(Tl,
T2);
//
Нарисовать
отрезок
красным
цветом:
Doc1.ModelSpace.AddLine(T2,
Т3).Color
= AutoCAD.ACAD_COLOR.acRed;
// Горизонтальный
текст (с разворотом 0 градусов)
Doc1.ModelSpace.AddText(«Горизонтальный»,
Т4,
22);
// Вертикальный
текст с разворотом на 90 град = ПИ/2
Doc1.ModelSpace.AddText(«Вертикальный»,
T1, 22).Rotation = Math.PI / 2;
// Сохраняем чертеж
на диске:
Doc1.
SaveAs
(«С:
\Чертеж.dwg»)
;
ACAD1.Quit();
}
}
}
Как видно из
программного кода, весь процесс работы
программы происходит cразу
после выполнения процедуры
InitializeComponent.
Вначале создается объект клаcca
AutoCAD.Application.
Далее создаем коллекцию документов
AcadDocuments
и ,открываем (делаем активным) один
документ предложением Docs
.Add.
Затем задаем
видимость работы AutoCAD
visible
= True,
при этом AutoCAD
только мелькнет на экране. (Заметьте,
что для конечной цели, т. е. для получения
dwg-файла,
видимость не обязательна.) Далее задаем
четыре точки, которые будут участвовать
в построении чертежа. Обратите внимание,
что каждая точка имеет три ординаты,
хотя мы собираемся строить плоский
чертеж. Третью координату мы будем
воспринимать, как напоминание того, что
AutoCAD
способен строить трехмерные чертежи.
Затем рисуем два
отрезка AddLine
через точки T1,
Т2 и Т2, Т3. Причем мы показали, как второй
отрезок задать красным цветом. Далее
подаем команду выводить текст
горизонтально,
затем другой
текст — вертикально
с разворотом
на 90°, т. е. π/2.
Затем, используя метод SaveAs,
записываем построенный в документе
чертеж в dwg-файл
на логический диск С:.
В результате работы
этой программы получаем чертеж в системе
AutoCAD,
подобный представленному на рис. 9.8.
Убедиться в
работоспособности программы можно,
открыв решение ACADЧертеж-sln
в папке АСАDЧертеж.
Рис. 9.8.
Отображение полученного dwg-файла
в системе AutoCAD
Пример 61. Вызов
MATLAB
из вашей программы на Visual
С# 2010
Можно вызывать
MATLAB
из вашей С#-программы.
Среда MATLAB
является
стандартным
мощным инструментом для работы в
различных отраслях математики. При
подготовке этого примера автор пользовался
наиболее распространенной версией
MATLAB
6.5. В данном
примере продемонстрируем подготовку
вводных данных
для MATLAB,
создание экземпляра объекта типа MATLAB
и непосредственный вызов на выполнение.
В результате мы увидим построение
графика функции у
= sin(x)•e—x.
Для
программирования этой задачи запустим
Visual
Studio
2010 и закажем
новый проект шаблона Windows
Forms
Application
С#. Из панели
элеменов Toolbox
перенесем командную кнопку Button,
чтобы обращение к среде MATLАВ
происходило при щелчке на этой кнопке
и выглядело бы наиболее выразительно.
Далее на вкладке программного кода
введем текст из листинга 9.8.
Листинг 9.8.
Использование возможностей среды MATLAB
// Программа,
подготовив соответствующие команды
для MATLAB,
вызывает
// его на выполнение
этих команд. В результате строится
затухающая
// синусоида у =
sin(x)*ехр(-х)
using
System;
using
System.Windows.Forms;
//
Добавляем
директиву
System.Reflection:
using System.Reflection;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
MatlabBызов
{ // Для успешной
работы программы нет необходимости
добавлять ссылку на
// объектную
библиотеку через Project
| Reference.
Однако на компьютере
// MATLAB
должен
быть
установлен
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
Button1.Text
= «Вызвать
MATLAB»;
}
private
void button1_Click(object sender, EventArgs e)
{ // Получить тип
приложения MATLAB:
Type
ТипМатЛаб = Type.GetTypeFromProgID(«Matlab.Application»);
// Создать экземпляр
объекта типа MATLAB:
object
МатЛаб
= Activator.Createlnstance(ТипМатЛаб);
// Подготавливаем
команды для MATLAB:
object[]
Команды
= new Object[]
// {
«surf(peaks)» };
{ «x =
0:0.1:6.28; у
= sin(x)*exp(-x); plot(x,y)» };
// { «s
= sin(0.5); с
= cos(0.5); у
= s*s+c*c; y» };
// Вызываем MATLAB,
подавая ему на вход подготовленные
команды:
object
Результат = ТипМатЛаб.invokeMember(«Execute»,
BindingFlags.InvokeMethod,
null,
МатЛаб, Команды);
//
MessageBox.Show(Результат.ToString());
}
}
}
Как видно из текста
программы, при обработке события «щелчок
на кнопке» переменную ТипМатЛаб
получаем
тип приложения MATLAB.
Далее создаем экземпляр объекта этого
типа. Затем подготавливаем три команды
для MATLAB,
разделенные точкой с запятой. Первая
команда «х = 0:0.1:6.28;» задает вектор
х (набор
чисел) от нуля до 2π (6,28) с шагом 0,1. Вторая
команда «у = sin(x)
*eхр(-х);»
вычисляет второй вектор по значениям
первого вектора. Третья команда plot
создает
график зависимости у
от х.
Метод Execute
выполняет в среде MATLAB
подготовленные команды. В результате
обращения к MATLAB
получим построенный график заданной
функции (рис. 9.9).
В комментариях
приведены и другие команды, которые
можно выполнить, подключаясь к среде
MATLAB.
Убедиться в
работоспособности программы можно,
открыв решение MatlabBызов.sln
в папке MatlabBызов.
Рис. 9.9.
График функции, построенный в среде
MATLAB
Пример 62. Решение
системы уравнений путем обращения к
MATLAB
Основной особенностью
языка MATLAB
являются его широкие возможности работе
с матрицами, которые создатели языка
выразили в лозунге «Думай векторно
» (от англ. Think
vectorized).
Изначально
среда MATLAB
эволюционизировалась с задач матричной
алгебры, отсюда и слово MATLAB
означает матричная лаборатория (matrix
laboratory).
Решить систему уравнений, глядя на
предыдущий пример, очень просто, нужно
всего лишь знать, как строятся команды
в MATLAB.
Продемонстрируем процесс решения
системы линейных уравнений на следующем
примере.
X1
+ Х2
+ Х3
=6
X1
+
Х2
=3
Х2
+ Х3
=5
Данную систему
решим через обратную
матрицу.
Для программирования
этой задачи запустим Visual
Studio
2010 и закажем
новый проект шаблона Windows
Forms
Application
С#. Из панели
элементов Toolbox
перенесем командную кнопку Button.
Далее на вкладке программного кода
введем текст из листинга 9.9.
Листинг 9.9. Решение
системы линейных уравнений с помощью
MATLAB
// Программа,
подготовив команды для решения системы
уравнений в среде
// MATLAB,
вызывает его на выполнение этих команд.
В результате получаем
// решение, которое
выводим на экран с помощью MessageBox
using System;
using System.Reflection;
using
System.Windows.Forms;
// Другие директивы
using
удалены, поскольку они не используются
в данной программе
namespace
MatlabСЛАУ
{
public
partial class Form1:Form
{ ^
public
Form1()
{
InitializeComponent();
Button1.Text
= «Решить
СЛАУ»;
}
private
void button1_Click(object sender, EventArgs e)
{
//
Матричное
уравнение АХ = L
решаем через
// обратную матрицу: X =
A(-1)L.
//
Здесь (-1) — «знак» обратной матрицы.
//
Решаем систему
// XI + Х2 + Х3 = 6
// XI +
Х2 =3
//
Х2 + ХЗ
=
5
// Для решения этой
системы в MATLAB
следует подать такие команды:
// А = [1 1 1; 1 1 0; 0 1
1]; L
= [6; 3; 5];
// % здесь задание
прямой матрицы А и вектора свободных
членов L
// X = inv(A)*L
% умножение обратной матрицы на L»
};
//%-
это признак
комментария в MATLAB
// Получить тип
приложения MATLAB:
Туре
ТипМатЛаб
= Type.GetTypeFromProgID(«Matlab.Application»);
// Создать
экземпляр
объекта
типа
MATLAB:
object
МатЛаб
= Activator.Createlnstance(ТипМатЛаб);
// Подготавливаем
команды для MATLAB:
object[]
Команды = new
Object[]
{ «А = [1 1 1; 1 1 0;
0 1 1]; L
= [6; 3; 5]; » + «X = inv(A)*L
% обратная матрица inv»
};
// Вызываем MATLAB,
подавая ему на вход подготовленные
команды:
object
Результат
= ТипМатЛаб.InvokeMember(«Execute»,
BindingFlags.InvokeMethod, null, МатЛаб,
Команды);
// Таким образом
мы могли бы вывести решение на экран:
//
MessageBox.Show(Результат.ToStringf));
// Однако этот
результат будет внутри строки, а хотелось
бы
// получить ответ
в массив double
для дальнейшей обработки.
// Этот массив можно
получить методом GetFullMatrix
из среды
// MATLAB,
как показано ниже
var p = new
ParameterModifier(4);
p[0] =
false; p[1] = false; p[2] = true; p[3] = true; ParameterModifier[]
mods = { p };
double[,] X
= new double[3, 1];
object[]
Аргументы
= new object[] { «X», «base», X, new double[0]
};
// Здесь «X»
— это название матрицы, которую мы хотим
получить.
// «base»
является названием рабочей среды MATLAB,
где следует
// искать
матрицу
«X».
Результат
= ТипМатЛаб.InvokeMember(«GetFullMatrix»,
BindingFlags. InvokeMethod, null, МатЛаб,
Аргументы,
mods, null, null);
// Решение
системы
получаем
в
матрицу
X:
X =
(double[,](Аргументы[2];
string
Строка
= string.Format(«X1 = {0}; Х2
= {1}; Х3
= {2};», Х[0,
0] , Х[1,
0], Х[2,
0]);
MessageBox.Show(Cтрока);
}
}
}
Как видно из
программного кода, подход к решению
задачи аналогичен предущему примеру.
Мы реализовали обращение к MATLAB,
используя метод Execute,
решение системы получили в переменную
Результат.
И, как показано в комментарии, можем
вывести результат вычислений на экран
с помощ MessageBox.
Однако для дальнейшей работы с полученным
вектором неизвестных желательно иметь
его в виде массива Double,
а не в виде строки. Конечно, можно выделить
из строки решения каждое значение
неизвестного с помощью операций со
строками, используя функцию Split,
которая возвращает строковый массив,
содержащий подстроки данного экземпляра.
Однако существует
более красивое решение. Оно заключается
в иcпoльзoвaнии метода GetFullMatrix.
Технологию этого использования мы
привели в данной программе. Здесь
наиболее важным параметром является
объектная переменная Аргументы.
Ее первым компонентом является компонент
«X«,
содержащий название матрицы, которую
мы хотим получить из среды MATLAB,
второй компонент «base»
является названием рабочей среды
(workspace)
MATLAB,
где следует искать матрицу «X«.
Согласно документации, в среде MATLAB
мы имеем две
основные рабочие среды: «base»
и «global«.
Третьим компонентом является массив
х,
куда получаем результат решения из
среды MATLAB,
а четвертым компонентом массив мнимой
части решения, которой в нашей задаче
нет, но для общности технологии требуется
ее формальное присутствие.
О других способах
подключения к MATLAB
можно узнать на сайте компании The
Math
Works,
производителя MATLAB,
www.mathworks.com.
Убедиться в ботоспособности обсуждаемой
программы можно, открыв решение
MatlabCлay.sln
в папке MatlabCлay.