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

Тема 9_Программирование

.pdf
Скачиваний:
19
Добавлен:
20.02.2016
Размер:
675.45 Кб
Скачать

Else

раторы1; а если условие ложно, то выполня-

операторы2

ются операторы2. Ветвь Else может отсутст-

End If

вовать.

If (условие1) Then

Используется для проверки нескольких усло-

операторы1

вий: если условие1 истинно, то выполняются

ElseIf (условие2) Then

операторы1; а если условие1 ложно, то про-

операторы2

веряется условие2 и т.д. Если ни одно из про-

ElseIf (условие3) Then

веряемых условий не выполняется, то рабо-

операторы3

тают операторы.

Else

 

операторы

 

End If

 

В рассматриваемой процедуре используется оператор If первого вида.

· Запустите процедуру Вознаграждение. На экране появится диалоговое ок-

но, в котором введите значение объема продаж, например 25 800, и нажмите

[ОК]. В открывшемся окне с результатом нажмите [ОК].

·Проверьте работу программы на примере другого значения объема продаж.

·Закройте окно редактора и сохраните книгу.

Задание 4. В книге VBA_Excel в модуле Подпрограммы cоздать программу,

которая вычисляет факториал вводимого в диалоговом режиме числаN. Вывод результата осуществить в диалоговом окне.

Р е к о м е н д а ц и и п о в ы п о л н е н и ю

·В книге VBA_Excel откройте редактор Visual Basic.

·В модуле Подпрограммы создайте новую процедуру-подпрограммуФак-

ториал (рис. 9.12).

& Пояснения по содержанию программы:

В процедуре организация циклов с фиксированным числом шагов осуще-

ствляется оператором цикла FOR, который используется в следующей конст-

рукции:

FOR счетчик=начало конец Step приращение

операторы

Next счетчик

31

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

Она изменяется от значения начало до значения конец с шагом приращение. За-

пись Step приращение может отсутствовать при шаге 1.

Рис. 9.12 Окно кода модуля Подпрограммы с процедурой Факториал

·Запустите процедуру Факториал и рассчитайте факториал для различных чисел, например 7, 15, 35.

·Закройте окно редактора и приложения Excel, сохранив книгу.

Задание 1. В документе VBA_Word в модулеПодпрограммы создать дос-

тупную для всех документов программу, которая в текстовом документе знаки принудительного разрыва строки«¿» заменяет на стандартные знаки абзаца

«¶».

& При копировании текста с Web-страниц в документ Word часто в тексте обнаруживается символ длинное тире ( ). Поэтому возникает необходимость замены этого сивола обычное тире ( – ) по всему документу. Чтобы это легко

Р е к о м е н д а ц и и п о в ы п о л н е н и ю

·Откройте текстовый процессор Word.

·Сохраните созданный по умолчанию документ с именемVBA_Word в папке

Программирование.

· Откройте редактор Visual Basic.

32

·Активизируйте окно проекта Project и окно свойств Properties, если их нет.

·Создайте в проекте VBA_Word новый модуль Подпрограммы.

·В модуле Подпрограммы создайте процедуру-подпрограммуWord_VBA

(рис. 9.13).

Рис. 9.13 Окно кода модуля Подпрограммы с процедурой Word_VBA

&Пояснения по содержанию программы:

·инструкция ActiveDocument.Characters.Count считает число символов в те-

кущем документе;

·инструкция ActiveDocument.Characters(i) выбирает i-тый символ;

·инструкция ActiveDocument.Characters(i).Select выделяет i-тый символ;

·функция Chr(n) возвращает строку из одного символа, соответствующего коду символа n. (n принимает значения от 0 до 255). Например, Chr(11) = «¿»,

Chr(13) = «¶».

Примечание. Код символа можно просмотреть в окнеСимвол (открывается из меню

Вставка).

·инструкция Selection.Text заменяет выделенный текст.

·Проверьте работу программы:

33

-перейдите из редактора Visual Basic в окно приложения;

-скопируйте в документ Word с любой Web-страницы фрагмент текста,

содержащего длинные тире (—) или вставьте эти знаки в текст командой

Вставка/Символ;

-запустите процедуру Word_VBA из окна Макрос.

·Закройте приложение Word, сохранив документ.

9.2.3 Создание процедур-функций

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

скую функцию. Пользовательские функции работают аналогично встроенным функциям и могут использоваться только в формулах ячеек рабочего листа. От-

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

Пользовательские функции Excel - это VBA процедуры-функции, кото-

рые ограничиваются инструкциямиFunction и End Function. Внутри обяза-

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

В общем случае синтаксис записи процедуры-функции имеет вид:

Function Имя ([аргументы])

инструкции

Имя_функции=выражение

End Function

Задание 2. В книге VBA_Excel в модуле Функции создать пользовательскую функцию СуммаСкидки для расчета в таблицеСведения о продажах (рис. 9.13) суммы скидки в зависимости от выручки от продаж по условию: для вы-

ручки на сумму до 200 000 руб скидка не начисляется; на сумму от 200 000 до

34

300 000 р. – скидка 3%; от 300 000 до 400 000 руб – 5%; от 400 000 до 500 000

руб – 6%; более 500 000 руб – 8%.

Р е к о м е н д а ц и и п о в ы п о л н е н и ю

·В книге VBA_Excel создайте таблицу Сведения о продажах (рис. 9.13).

·Для столбца Сумма скидки установите денежный формат с отображением двух знаков после запятой.

Рис. 9.13 Таблица Сведения о продажах

·Откройте редактор Visual Basic.

·В модуле Функции вставьте процедуру-функцию с именемСуммаСкидки,

типа – Function, вида доступа к процедуре – Public.

· Введите аргументы функцииСуммаСкидки() Продажа и Цена и текст

процедуры (рис. 9.14).

Рис.9.14 Окно кода модуля Функции с процедурой СуммаСкидки

Примечание. Аргументы функции перечисляются через запятую.

35

·Закройте редактор Visual Basic.

·Вычисите сумму скидки в таблице:

-в ячейку D4 командой Вставка/Функция из категории Определенные пользователем вставьте функцию СуммаСкидки и нажмите [ОК];

-в окне Аргументы функции в полеПродажа введите ссылкуВ4

щелчком мыши по этой ячейке на рабочем листе, в поле Цена и – С4 и

нажмите [ОК]. В результате в ячейке D4 появится формула:

=СуммаСкидки(B4;C4)

- скопируйте формулу из ячейки D4 в диапазон D5:D9 с использованием маркера автозаполнения.

· Сохраните книгу VBA_Excel.

Задание 3. Продемонстрировать преподавателю результаты работы в файлах

VBA_Excel и VBA_Word.

Задания для самостоятельной работы

Задание 1. В Excel cоздать программу, которая рассчитывает сумму скидки на покупку мебели по вводимому в диалоговом режиме значению суммы покупки по условию: при покупке на сумму до 2 000 000 руб. скидка составляет 2%; бо-

лее 2 000 000 руб. – 4%. Вывод результата осуществить в диалоговом окне.

Задание 2. В Excel cоздать программу, которая вычисляет сумму чисел от 1 до

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

Контрольные вопросы

1.Для чего предназначен редактор Visual Basic?

2.Как нужно настроить рабочую среду редактора Visual Basic перед работой?

3.Перечислите основные элементы интерфейса редактора Visual Basic.

4.Перечислите основные окна редактора Visual Basic.

36

5.Как создается и активизируется процедура-подпрограмма?

6.Как создаются и используются пользовательские функции?

Индивидуальные задания

1.В среде Word создать программу, которая заменяет в документе символ X на символ Y согласно варианту, заданному преподавателем из табл. 9.5.

Таблица 9.5

Заменяемые символы

Вариант

Символ X

Символ Y

 

 

 

1

!

.

2

.

!

3

,

;

4

-

+

5

+

=

6

<

7

>

8

a

@

9

S

$

10

Y

g

11

­

Ý

12

®

Þ

13

¯

ß

14

¬

Ü

15

=

Û

2.В табличном процессоре Excel создать таблицу Ведомость со столбцами:

ФИО, Номер бригады, Вид детали, Количество деталей, шт.,

Стоимость деталей, руб, Премия, руб.

3.Заполнить 4 столбца таблицы исходными данными согласно варианту,

заданному преподавателем из табл. 9.6., с учетом следующего:

-работают две бригады рабочих;

-общее количество работников 5 чел (один из рабочих должен носить вашу фамилию);

-рабочие производят детали трех видов– А, В, С (внесите конкретные

37

названия);

-стоимость одной детали вида А – X руб, вида В – Yруб, вида С – Z руб;

-каждый рабочий производит детали одного вида.

4.Создать пользовательскую функциюСтоимость_деталей для вычисления значений столбца Стоимость деталей, руб. Стоимость деталей рассчи-

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

5.Создать пользовательскую функцию Премия для расчета размера премии по условию: при стоимости произведенных деталей на сумму большеN руб.

премия составляет 10% от этой суммы для рабочихI бригады и 12% для рабочих II бригады.

6.Используя пользовательскую функцию Премия заполнить столбец Премия,

руб. расчетными формулами.

7.Обеспечить подведение итоговых сумм премий по каждой бригаде.

Таблица 9.6

Исходные данные для таблицы Ведомость

Вариант

X

Y

Z

N

 

 

 

 

 

1

10

12

15

500

2

11

13

16

600

3

15

17

21

520

4

14

16

20

700

5

17

15

14

570

6

11

17

14

550

7

12

13

17

650

8

20

17

21

700

9

14

18

19

500

10

19

15

9

530

11

11

11

15

510

12

13

16

14

460

13

19

20

19

540

14

14

19

22

600

15

13

14

21

590

38

ЛИТЕРАТУРА

1. Бородина А.И. и др. Решение экономических задач вMathcad .Минск :

БГЭУ, 2010. 147 с.

2. Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах. – СПб.:БХВ-

Петербург, 2005. – 816с.

3.Дьяконов В.П. MathCAD 2000: учебный курс. – СПб.: Питер, 2000. – 592 с.

4.Информатика для юристов и экономистов: Учебник для вузов / С.В. Си-

монович и др.; под. ред. С.В. Симоновича. – СПб.: Питер, 2007.

5.Кирьянов Д. Mathcad 14 . СПб.;БХВ-Петербург, 2007.-704 с.

6.Косовцева Т. Р., Петров В. Ю. MS EXCEL в расчетных задачах. Учебное пособие – СПб: СПГУ ИТМО, 2010. – 82 с.

7.Кузьменко В.Г. Программирование наVBA 2003. – М.: ООО «Бином-

Пресс», 2004 г. – 880с.

8. Леоненков А.В. «Решение задач оптимизации в среде MS EXCEL». - Санкт-

Петербург: «БХВ-Петербург», 2005. – 704с.

9.Макаров Е.Г. Mathcad. Учебный курс . – СПб.: Питер, 2009

10.Основы информатики и вычислительной техники: Учебно-практ. посо-

бие / А.Н. Морозевич, О.А. Сосновский, М.Н. Садовская, Н.Н. Говядинова и др.; Под ред. А.Н. Морозевича. – Мн.: БГЭУ, 2005. – 250 с. (Система дистанци-

онного обучения).

11. Плис А.И., Сливина Н.А. Mathcad 2000. Лабораторный практикум по выс-

шей математике. -М.: Высш. шк., 2000. – 716 с:.

12.Рудикова Л.В. Excel для студента. СПб.:БХВ-Петербург, 2005. –368с.

13.Сборник задач и упражнений по высшей математике. Для студентов экономических специальностей части 1и 2 . Мн.: БГЭУ, 2008/2009.

14.Седун А.М. Компьютерные информационные технологии: Практикум для студентов заочного обучения / Седун А.М. Садовская М.Н. Оскерко В.С и др.

Мн.: БГЭУ, 2010.

15. Степура Ю.В., Чепурных С. Ю. Экономические функции MS Excel. Екатеринбург: ГОУ ВПО УГТУ−УПИ, 2009.

39