Используя буфер, можно, работая например в Excel, прерваться и практически
мгновенноперейти в другую программу, которую Windows держит для вас наготове.
Причем независимо от текущей программы переход осуществляется с помощью одной
итой же команды. Для этого нужно выделить соответствующие ячейки. Занести
данные в буфер, используя для этогокоманду меню Правка - Копировать, либо
комбинацию клавиш Ctrl+C. Теперь либо сам Excel, либо иная программа может
вынуть данные из буфера с помощьюкоманды меню Правка - Вставить или одной из
двух комбинаций клавиш: Shift+Insert или Ctrl+V.
Текстовый редактор Word для Windows.
Из буфера обмена данные поступают в Word для Windows в виде таблицы. Эта
программапонимает все форматы Excel. Гарнитура и размеры шрифта также
сохраняются в неизменном виде. Используя меню обработкитаблиц текстового
редактора можно обрабатывать в нем данные.
Экспорт.
Excel может хранить рабочие листы в памяти в различных форматах. Чтобы
задать свой формат, нужно выбрать команду меню Файл - Сохранить как, где есть
полеТип файла. Там имеется список форматов, в которые Excel может преобразовать
свои файлы.
Конечно, далеко не всегда при разработке средств автоматизации геодезических
вычислений могут понадобиться все средства MS Excel, так как программа содержит
чрезвычайно большоеколичество функций и возможностей, начиная от работы со
статистическими данными, и заканчивая работой с построением графиков и
диаграмм,что скореенужно в делопроизводстве или бухгалтерии. Но полностью
отметать использование их нельзя, так как дополнительные возможности программы
не только не мешают, ноиногда могут быть использованы самым неожиданным
способом, так, напримр, мой знакомый,используя исключительно средства построения
графиков и диаграмм MS Excel, создал таблицу, которая автоматизировала
построениемодели рельефа,полученной по результам нивелирной съемки местности
способом «по квадратам».
Краткое описание электронной таблицы, автоматизирующей выполнение лабораторной
работы «Предварительные вычисления в триангуляции».
Довольно большой объем однообразных вычислений, требующийся для выполнения
данной работы, натолкнул меня на мысль сделатьэлектронную таблицу, которая бы
позволила автоматизировать данный процесс. Кроме того, несмотря на то, что
исходные данные в каждом варианте былиразличны, но их количество и структура бла
неизменной-одинаковое число пунктов и одинаковое их расположение. Для решения
такой задачи очень хорошо подходилапрограмма MS Excel, тем более что данные
представлены в таблицах. Следовательно, задача свелась лишь к
формализациипроцесса вычислений, т.е. необходимо было создать совокупность
электронных таблиц, которые внешне выглядели бы точно так же, но вычисления
–автоматизированы. Эта задача решается просто записыванием соответсвующих формул
в соответсвующие ячейки, где производилась бы обработка данных, которыепрограмма
взяла бы из других ячеек(с исходными данными, куда необходимо их ввести
вручную).
Например, таблица 1, «Вычисление дирекционных углов и длинн сторон между
исходыми пунктами», выглядит так:
Как видно, таблица почти полностью дублирует таблицу, взятую из «методических
указаний», только имеется лишний столбец (пустой) междуколонками «Румб» и
«Градусы», который нужен для записи промежуточных результатов. Дело в том,что
все-таки изначально Excel не предназначался для работ в геодезической
сфере,поэтому в нем нет встроенных форматов представления результатов угловых
измерений. Впрочем, они достаточно легко реализуются вручную, но , скажем,
длязаписи величины угла в формате «градусы, минуты, секунды» требуется не один
столбец таблицы, а три, соответственно, доступ к этим данным тожеосуществляется
раздельно.Для решения этой проблемы пришлось делать структуру, которая переводит
величину в градусах (десятичные доли) в требуемый формат,отбрасывая сначала
величину десятых долей и устанавливая количество целых градусов,а после переводя
десятичные доли градуса в минуты и секунды. Дляпримера, формулы, записанные в
ячейках:
H4 =ОТБР(G4) – целое число градусов
I4 =ОТБР((G4-H4)*60) – целая часть произведения из десятичых долей градусов,
умноженных на 60, т.е. целое число минут
J4 =ОКРУГЛ((G4-H4-(I4/60))*3600;2) – произведение из исходной величины градусов
минус целое число градусов минустолько что вычисленное целое число минут,
деленное на 60 умноженное на 3600 и округленное до двух знаков послезапятой =
число секунд, вычисленное с точностью до 2-х знаков после запятой.
В этой версии таблицы применены русские названия формул (хотя мне такое решение
представляется весьма и весьма спорным – ведьэто как-бы нарушение международного
стандарта), так что фомула в ячейке H4 означает «взять целую часть числа,
находящегося вячейке G4(причем столбец G4 не виден – он скрыт. Это решение
применено для удобства – дело в том, что совокупность формул в ячейках H4:J11
является такой, чтобы перевести в формат «градусы,минуты, секунды» любое число,
находящееся в соответствующей ячейке столбца G4, и между собой этот диапазон
связан относительнымиссылками, т.е. при «переброске через буфер» (копировании в
буфер и вставке из него) координаты ячеек будут пересчитаны(эту функцию Excel
выполяет автоматически), т.е. будет преобразовано в формат «градусы, минуты,
секунды» любое число, находящееся в соответсвующей строкестолбца,
соответсвующего столбцу G4 в данном примере. Это очень удобно, но требует того,
чтобы работа проводилась с ссылкамина соответсвующие значения, которые нужно
преобразовать в формат «градусы, минуты, секунды», причем столбец,содержащий
ссылку, можно сделать скрытым, как в данном примере.
Или еще пример:
S4 =ОКРУГЛ(КОРЕНЬ(СТЕПЕНЬ(B5-B4;2)+СТЕПЕНЬ(C5-C4;2));2)
Таким вот непривычым способом записывается теорема Пифагора.
СТЕПЕНЬ(B5-B4;2) означает квадрат разности значений, записанных в B5 и B4 ( это
как разисходные координаты), двойка-это показатель степени.
КОРЕНЬ – это извлечение квадратного корня из аргумента в скобках.
ОКРУГЛ – это округление результата до второго знака после запятой.
На приведенных примерах хорошо виден принцип работы электронных таблиц – они
просто выполняютто, что записано в их ячейках. Преимуществом по сравнению с
разработкой на языках программирования являетсянаглядность и высокая степень
конфигурабельности, а также легкость редактирования и модификации.
По такому принципу создана вся так называемая “книга MS Excel» – совокупность
электронных таблиц, которые в этом случае называются «листами».Каждый лист
содежит отдельную таблицу, которая (в основном) данные для своей работы берет из
предыдущих листов, что реализовано с помощью механизма «ссылок»– метода, при
помощи которого ячейка одного листа в книге ссылается на значение ячейки
другого листа этой жесамой книги.
Нет нужды описывать рлдробным образом каждую таблицу данной книги, потому что
принцип работы остается одинаковым, но необходимосказать о существенных
недостатках такого подхода. Во-первых, ссылки могут быть многократными, т.е. на
ячейку, содержащую ссылку, в свою очередь ссылаетсядругая ячейка и т.д. Это, с
одной стороны, создает удобство работы, так как для исходых данных последующей
таблицы можно брать предыдущую, не задумываясь,содержит ли она ссылки или нет, а
не искать ту клетку, где хранятся исходные данные, а с другой стороны,
такойподход затрудняет поиск ошибок, так как для поиска ошибки в цепи,
содержащей ссылки, необходимо проследовать по ней до самого начала, прослеживая
заодновзаимодействия этой цепи с другими элементами кники, что при большом
объеме таблицы может быть весьма затруднительно.
Другой минус подобной реализации – это то, что все-таки Excel не имеет
достаточно удобныхконструкций, необходимых для реализации базовых алгоритмов,
как то : следование, развилка, цикл. Скажем, выбор из двух сценариев вычисления
(чтонеобходимо, когда, например, получается число градусов больше 360 – ти,
такая ситуация не представляет никаких трудностей для человека, но не
длякомпьютера!) представляет собой не очень просто реализуемую задачу , она,
будучи по сути простейшей, приводит к появлению, например, таких формул:
=ЕСЛИ(СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)>=60;ЕСЛИ(СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)>=120;СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)-120;СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0)-60);СУММ(D10:D12)+ОКРУГЛВНИЗ(СУММ(E10:E12)/60;0))
Данная формула представляет собой как раз выбор из двух сценариев вычислений, в
заисимости от числа секунд и минут всоответсвующих ячейках, учитывающий все
варианты.
Ясно, что работать с такого рода формулами очень неудобно.
Направления усовершенствования. Язык Visual Basic.
Хотя разработанная таблица и справляется с поставленной задачей, тем не менее
существует ряд моментов, которые хотелось быулучшить. Это – избавиться от
структур, описанных в конце предыдущего параграфа, сделат выбор сценария решения
понятным и удобочитаемым, а в далекойперспективе – даже расширить данную таблицу
таким образом, чтобы появилась возможность работы не с фиксироаннымколичеством
точек, а с произвольным, задавая их количество. Данная задача является очень
трудоемкой и требует хорошео знания особенностейпрограммирования на встроеном в
MS Excel язык программирования Visual Basic.
Это в принципе объектно-ориентированное расширение обычного языка Basic, с очень
большим числомновых функций и методов, призванных помочь в решении самых
разнообразных задач любой сложности. Интеграция языка программирования и