Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика

.pdf
Скачиваний:
26
Добавлен:
03.05.2015
Размер:
3.59 Mб
Скачать
), выбрав диаграмму
Рис. 30

101

2.Меню "Вставка диаграммы" имеет богатый выбор возможностей. В нашем частном случае следует выделить прямоугольную таблицу значений аргументов и функции и в меню Диаграммы выбрать пункт "Точечная диаграмма" (не "График", который используется для равномерной сетки аргумента), далее диалоговое меню проведет по всем этапам построения графика (см. рис. 9).

3.Из других приложений вставка выполняется обычным образом через буфер обмена: выделение → копирование (Ctr+C) → вставка (Ctr+V). Например, если нам необходимо вставить в документ график эллиптической спирали x(t) = 2 cos(t) + 0.2t, y(t) = 10 sin(t), то можно в

Mcd, например, ввести функции x(t) := 2∙cos(t) + 0.2∙t y(t) := 10∙sin(t)

и обратиться к меню "плоский график" (иконка без изображения осей, внизу диаграммы запи-

сав x(t), слева от поля диаграммы y(t). Результат (рис. 30) можно скопировать в буфер обмена и поместить на рабочий лист Excel.

4. Построим теперь график функции, изображенной выше с помощью автофигур, используя макросы. Пусть нам нужен гафик на весь рабочий лист. В меню выберем запись макроса с именем Graph. Изобразим (вставка автофи-

гур) в нужном месте координатные оси и произвольную кривую (как в первом случае) и остановим запись. В новом модуле текст макроса имеет вид:

Sub Graph()

'

'Graph Макрос

'Макрос записан ‹дата›

'

ActiveSheet.Shapes.AddLine(47.4, 291, 594.6, 291.6).Select Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium Selection.ShapeRange.Flip msoFlipVertical

ActiveSheet.Shapes.AddLine(46.8, 9.6, 48#, 291.6).Select Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium Selection.ShapeRange.Flip msoFlipVertical

With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 48#, 290.4)

.AddNodes msoSegmentCurve, msoEditingAuto, 61.8, 252#

.AddNodes msoSegmentCurve, msoEditingAuto, 92.4, 223.8

.AddNodes msoSegmentCurve, msoEditingAuto, 146.4, 205.8

.AddNodes msoSegmentCurve, msoEditingAuto, 258.6, 198#

.AddNodes msoSegmentCurve, msoEditingAuto, 408.6, 180#

102

.AddNodes msoSegmentCurve, msoEditingAuto, 574.2, 13.8

.ConvertToShape.Select End With

End Sub .

В нем, очевидно, много лишнего. После "очистки" тело макроса будет короче (сравните!):

ActiveSheet.Shapes.AddLine(47, 291, 595, 291).Select

With Selection.ShapeRange.Line

'***ось абсцисс

.EndArrowheadStyle = msoArrowheadTriangle

.EndArrowheadLength = msoArrowheadLengthMedium

.EndArrowheadWidth = msoArrowheadWidthMedium End With

ActiveSheet.Shapes.AddLine(47, 291, 47, 9).Select

With Selection.ShapeRange.Line '***ось ординат

.EndArrowheadStyle = msoArrowheadTriangle

.EndArrowheadLength = msoArrowheadLengthMedium

.EndArrowheadWidth = msoArrowheadWidthMedium End With

With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 48, 291) ' *** ... добавление узлов линии

.AddNodes msoSegmentCurve, msoEditingAuto, 574.2, 13.8

.ConvertToShape.Select End With .

Таким образом, диапазон изменения аргумента 47 ... 595, функции 291 ... 9, следовательно, можно ввести масштаб (595-47)/10 = 54.8 для х и (291-9)/0.38 ≈ 742.1 – для у (f(0) = 0, f(10) ≈ 0.38). Поэтому запол-

ним тело макроса следующим кодом:

Sub Graph()

Dim x As Single, y As Single, h As Single, i As Integer

Const mx As Single = 54.8

Const my As Single = 742.1

ActiveSheet.Shapes.AddLine(47, 291, 595, 291).Select

With Selection.ShapeRange.Line

'***горизонтальная стрелка

.EndArrowheadStyle = msoArrowheadTriangle

 

.EndArrowheadLength = msoArrowheadLengthMedium

.EndArrowheadWidth = msoArrowheadWidthMedium

End With

 

ActiveSheet.Shapes.AddLine(47, 291, 47, 9).Select

 

With Selection.ShapeRange.Line

'***вертикальная стрелка

.EndArrowheadStyle = msoArrowheadTriangle

.EndArrowheadLength = msoArrowheadLengthMedium

.EndArrowheadWidth = msoArrowheadWidthMedium

End With: h = 0.1 '***рисование линии: With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 47, 291)

For i = 1 To 100: x = i * h: y = f(x) x = 47 + mx * x: y = 291 - my * y

.AddNodes msoSegmentCurve, msoEditingAuto, x, y Next

.ConvertToShape.Select End With

 

103

With Selection.ShapeRange.Line

'***форматирование линии

.Weight = 3

 

.ForeColor.SchemeColor = 10

 

.Visible = msoTrue

 

End With

 

End Sub .

 

Запустить макрос можно из меню "Макросы", либо вставив надпись с формулой и назначив ей макрос Graph. В результате получим график рис. 31.

(-1)[ln(n)]

 

x2n - 1

n!

f(x) =

 

 

2

n

n = 1

3n

П (1 + kx)

 

 

k = 1

Рис. 31

2.5. ВЫЧИСЛЕНИЯ

Excel хорошо приспособлен для расчетов в таблицах (это табличный процессор). Он имеет богатый набор встроенных функций (см. рис. 32), вызываемых из меню "Вставка функций" (иконка f(x)). В программе, как правило, используются стандартные встроенные функции VBA, но есть возможность вызывать любую функцию рабочего листа с помощью (свойство иерархии объектов) обращения к свойству

Application.WorksheetFunction. Например, если в программе необхо-

димо вычислить среднее значение чисел 37, -11, 0, 2.15, 9, то можно обратиться к функции Average (среднее значение) командой

Application.WorksheetFunction.Average(37, -11, 0, 2.15, 9).

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

104

Рис. 32

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

Пример 1. Найдем параметры линейной регрессии y = a + bx прямым вычислением и с использованием встроенных статистических функций. Заполним ячейки А2:А21 значениями: ‹А2› = СЛЧИС() (случайное число из промежутка (0, 1) – аналог VBA-функции Rnd), далее, А2 = А1 + СЛЧИС(), и т.д. В ячейку В2 вставим формулу "= Sin(A2/6)" и протянем (за правый нижний угол) до В21, подучив таким образом таблицу значений исследуемой функции. Параметры регрессии вычи-

 

− −

сляются так: b =

x∙y

- x

y

2

, a = y - b∙x. Поэтому в ячейку С2 вводим

 

 

 

 

 

x

2

- x

 

 

 

 

 

 

 

 

формулу "= А2*А2" и протягиваем формулу вниз до С21, в D2 – формулу "= А2*В2" и аналогично протягиваем вниз. Теперь нужно вычислить средние значения: в ячейку А22 вводим формулу "=СРЗНАЧ(A2:A21)" и протягиваем ее вправо до D22, получив таким

− − 2

образом средние значения x, y, x и x∙y. Теперь в ячейку Е23 вводим формулу вычисления параметра b: "=(D22-A22*B22)/(C22-A22^2)", а в С23 – формулу "=B22-E23*A22" – значения параметров получены. Для сравнения прямой линии с исходными данными вычислим значения регрессии a + bx: в ячейку Е2 введем формулу "=C$23+E$23*A2" и протянем ее вниз до Е21 (здесь при протягивании ссылки на ячейки С23 и Е23 – значения параметров а и b – должны быть абсолютными, следовательно, "закреплены" символом "$"). В соседнем столбце F вычислим разность у - а - bx = e (отклонения). Выделив, наконец, область А2:F21, обратимся к построению диаграммы (точечная диаграмма, см. рис. 33). Чтобы убедиться в правильности вычислений и использова-

105

Рис. 33

ния формул, введем в ячейки H22:I22 формулу, возвращающую параметры линейной регрессии "=ЛИНЕЙН(B2:B21;A2:A21)". В диалоговом меню укажем область ячеек, содержащих х и у, и нажмем сочетание клавиш "Ctr+Shift+Enter" (это необходимо, если результатом операции является не отдельное значение, а массив). В результате получатся значения, совпадающие с вычисленными непосредственно

(см. рис. 33, H22:I22).

Пример 2. Создадим две последовательности случайных чисел xk,

yk (-1, 1), k = 1, 2, ..., 20. Назовем рангом числа в последовательности его номер после упорядочения этой последовательности (например, среди чисел 22, -3, 17, 1 первое число будет иметь ранг 4, второе – ранг 1, третье 3, четвертое 2, поскольку в порядке возрастания они расположатся, как -3, 1, 17, 27). Пусть rxk, ryk – ранги членов этих после-

довательностей (в порядке возрастания). Положим dk = rxk – ryk,

k, и

вычислим S = ∑

(rxk – ryk)2, свертку ρ = ∑ xk∙y21-k и отношение

ζ =

ρ .

k

k

 

S

Запишем в ячейку А2 формулу "2*СЛЧИС()-1", протянем ее вправо на одну позицию и вниз до строки 21 (х = ‹А2:А21›, у = ‹В2:В21›). Теперь в ячейку С2 введем (из меню "вставка функции") формулу

"=РАНГ(A2;$A$2:$A$21;1)-РАНГ(B2;$B$2:$B$21;1)"

(ранг значения А2 в последовательности А2:А21 минус ранг В2 в последовательности В2:В21, ссылка на диапазон ячеек должна быть абсолютной, единица в конце означает порядок по возрастанию) и протянем ее до С21. В С22 получим сумму квадратов содержимого С2:С21 (формула "=СУММКВ(C2:C21)"). Свертка вычисляется чуть хитрее: можно использовать формулу

"=A2*СМЕЩ(B$22;-СТРОКА(A1);0)",

106

по которой номер строки В$22 (фиксированный) изменяется (здесь – уменьшается) на номер строки А1 (который при протягивании будет увеличиваться). Введем эту формулу в D2 и протянем до D21, получив тем самым последовательность xk∙y21-k, а в ячейке D22 посчитаем свертку. Результат получается вставкой формулы "=D22/C22" в какуюнибудь ячейку.

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

Пример 3. Пусть требуется решить кубическое уравнение а3х32х21х+а0=0. Оно имеет по меньшей мере один действительный корень. Возьмем конкретно а = (2.2, 3, -22.4, 7.3)Т. Запишем эти числа (в обратном порядке) в ячейки A5:D5, а в Е5 запишем текущее значение аргумента х = 0. В Е6 будем вычислять значение многочлена по формуле "=((A5*E5+B5)*E5+C5)*E5+D5". Теперь обратимся к надстройке "подбор параметра", указав изменяемую ячейку Е5 с результатом Е6, который должен быть равен нулю (рис. 34). Нажав "ОК", получим ‹Е5› = -0.24592, а в ячейке Е6 значение многочлена -0.00097.

Если в Е5 сначала поместим х = 1, то получим другой корень многочРис. 34 лена х = 0.424126. При начальном

значении х = 5 получим корень х = 2.890227. В Mcd встроенная

-0.246

функция polyroots(a) возвратит все три корня 0.424 .

2.89

Системы алгебраических уравнений удобнее решать с помощью надстройки "Поиск решения".

Пример 4. Пусть нужно найти решение простой системы уравне-

 

x2 + y2 - 4 = 0,

 

ний

 

x∙y

 

1

 

В ячейки А1:В1 рабочего листа запишем единицы

 

=

.

 

 

 

 

2

 

 

x + y

 

 

 

(начальные значения для поиска решения), в С1 введем формулу

"=А1*А1+В1*В1-4", в С2 – формулу "А1*В1/(А1+В1)-0.5". Вызовем

"Поиск решения", установив в целевой ячейке $C$1 значение 0 при условии $C$2 = 0. После пуска в ячейках А1:В1 получим значения 1.88045 и 0.6811 соответственно. Выбрав другие начальные значения, можно получить другие решения системы. Если система уравнений не имеет точного действительного решения, можно в меню поиска мини-

107

мизировать сумму квадратов разностей левых и правых частей уравнений системы (см. следующий пример).

Пример 5 (более сложный). Пусть дана некоторая матрица С =

1

2

3

4

 

4

3

2

1

 

3

-1

1

-2

 

1

0

-1

3

, записанная в ячейках G4:J10 рабочего листа. По-

2

1

2

0

 

2

-2

0

3

 

-3

2

-2

1

 

строим матрицу А = СТС в ячейках K4:N8 по формуле (используя функции транспонирования и умножения матриц)

"=МУМНОЖ(ТРАНСП(G4:J10);G4:J10)".

Найдем квадратный корень Х из матрицы А, решая уравнение Х2 = А. Запишем в ячейки K9:N12 единичную матрицу (для начала поиска решения), в ячейки O4:R7 - квадрат матрицы Х по формуле

"=МУМНОЖ(K9:N12;K9:N12)",

в ячейках O9:R12 вычислим разность =А-Х2 и в Р14 – сумму квадратов Δ: "=СУММКВ(O9:R12)". Будем изменять значения Х так, чтобы минимизировать Δ, а ма-

трица Х оставалась сим-

 

 

 

 

метричной (это следует

 

 

 

 

 

указать в списке ограни-

 

 

 

 

чений, см. рис. 35). Ус-

 

 

 

 

 

тановив значение ячей-

 

 

 

 

 

ки Р14 минимальным и

 

 

 

 

 

указав ссылки на изме-

 

 

 

 

 

няемые ячейки K9:N12

 

 

 

 

 

(здесь все ссылки долж-

 

 

 

 

ны быть абсолютными),

 

 

 

 

запускаем процесс поис-

 

 

Рис. 35

 

ка решения. В результате получим матрицу

 

 

 

5.174964

-0.78936

4.022383

0.645791

 

Х =

-0.78936

3.98235

2.405643

0.854759

,

4.022383

2.405643

0.962722

0.326426

 

0.645791

0.854759

0.326426

6.224612

 

квадрат которой отличается от матрицы А лишь в пятом знаке после запятой.

Пример 6. Решим следующую задачу линейного программирования: найти min x - y при условиях x – 4y ≤ -4, x – 2y ≤ 1, 5x – 2y ≤ 10, 10x – y ≥ 10,x + 2y = 10, x ≥ 0, y ≥ 0. Запишем в ячейки А1:В1 нули (в качестве начальных значений х и у, в ‹С1› =А1-В1, в ячейки А2:Е2 –

108

значения левых частей ограничений, в А3:Е3 – правые части ограничений. Вызвав диалоговое окно "Поиск решений", определим в целевой ячейке С1 минимальное значение, изменяя ячейки А1:В1. Внесем все ограничения в виде А2≤A3, B2≤B3, C2≤C3, D2≥D3, E2=E3, A1≥0,

B1≥0. Программа находит решение х = 1.42857, у = 4.285715, минимум равен -2.85714, первые три неравенства выполняются строго, последние два – равенства.

Аналогичным образом можно решать и транспортную, и другие более сложные задачи.

Полезно отметить, что "Подбор параметра" является методом Seek объекта Range() и может использоваться в программных модулях. "Поиск решения" является надстройкой и работает лишь в диалоговом режиме.

3. Работа в WORD

Среди большого числа существующих текстовых редакторов

(например, Open Office Word, Dolphin Text Editor, EuropeoSoft Alpine

Word, Ovis Pdf-Office, TEX, и др.) Word в системе Ms Office остается

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

Элементарная работа с текстом обеспечивается настраиваемым меню, возможностью масштабирования, наличием горизонтальной и вертикальной линеек, полосы прокрутки, строки состояния, выбором режима из набора:

1)режим разметки (вид для печати),

2)обычный (для просмотра и редактирования),

3)режим структуры (отслеживание иерархии),

4)схема документа (со всеми заголовками),

5)Web-документ,

6)во весь экран,

7)многостраничный режим.

3.1. ОБЩЕЕ РЕДАКТИРОВАНИЕ

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

109

Кнопка

 

Отступ первой строки

 

Отступ справа

 

Кнопка-

отступов

 

 

 

 

 

 

раздели-

 

 

 

 

 

и выступов

 

Отступ слева

 

 

 

 

тель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 36. Верхняя линейка

Word допускает вставку произвольных символов из доступного списка шрифтов размером от 8 до 72 пунктов (1pt = 0.352 mm), выделение символов и текста как цветом, так и рамками. Возможна вставка художественного текста (меню WordArt) и буквицы. Сам шрифт может быть жирный, наклонный, зачеркнутый, подчеркнутый, надстрочный, подстрочный, и т.д., высоту и ширину знаков можно менять независимо от выбранного шрифта. Отдельные части текста (с абзацем) могут быть маркированы (см. библиотеку маркеров) и (или) автоматически пронумерованы, разрешая многоуровневую структуру списков. Например, в пределах одного и того же шрифта (Arial) можно создать текст:

В е

 

и

 

 

н

 

 

 

лето, и й серебрится…

ян

т л

 

ст,

уходит

 

 

 

 

е

и более сложный.

3.2. ВСТАВКИ

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

3.2.1. Графические объекты

Частым объектом вставки является надпись, которая помещается в графический слой листа и не является элементом текста, но сама предназначена для хранения текста, позволяет форматирование и прочие действия с текстом, как элемент листа (но не допускает вставку других графических объектов). Среди свойств надписи можно назвать настройку границы, способы заливки, степень прозрачности, взаимодействие с окружающим текстом и с другими надписями. Надпись хорошо совмещается с элементами графики (меню "Автофигуры",

110

"Группировка") и потому служит удобным элементои оформления документа.

Элементы графики из меню "Рисование" ("Вставка" → "Фигуры") помещаются в графический слой листа просто выбором мышью из соответствующего меню. Здесь есть надписи, стандартные геометрические фигуры, стрелки, линии, набор кривых линий (полиномиальные, Безье, произвольно рисованные, и т.д.), фигурные стрелки, блок-схемы, выноски, звезды, и др. Рисунок, построенный из разнородных элементов графики может быть сгруппирован (стрелка "выделение" → "группировать") в единый объект, который может быть настроен, как любой другой внедренный элемент текста. Это делается совершенно аналогично тому, как описано в Excel.

Вставка математических символов и формул осуществляется преобразованием текстовых символов в графические объекты с помощью специальных программ. По традиции Ms Office для этой цели снабжался надстройкой Ms Equation3. Для этой же цели можно использовать более современные пакеты, например, SciWriter, MathType (см. рис. 37), и др (в Ms Office 2007 и старше это элемент меню).

Рис. 37. Меню программы MathType

Заметим, что вставленная таким образом формула является графическим элементом, а не элементом текста.

3.2.2. Поля и ключи

Этот раздел выходит за рамки программирования в каком-либо языке и практически не представлен в учебной литературе, но важен в плане информационных технологий. Инструмент полей и ключей позволяет полнее и увереннее использовать богатые возможности редактора Word. Ключи являются управляющими символами вспомогательных полей, которые используются в документах для хранения изменяемых данных. В разной степени используются несколько категорий полей, таких как Нумерация, Дата и Время, Связи и Ссылки, Указатели, Формулы и др. Бóльшая часть полей – своеобразные макрокоманды преобразования текста документа. Некоторые поля (такие как Нумерация, Ссылки и др.) фактически используются в меню "Параметры" настройки документа, другие можно вводить явно для облегчения работы с документом. Здесь кратко коснемся категории полей Formula, включающая поля Symbol, Advance и Eq. Поле вводится в фигурных скобках (меню "Вставка" → "Поле",