Файл: Министерство образования российской федерации казанский государственный энергетический университет.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.12.2023

Просмотров: 64

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

_____________________________________________________

Казанский государственный

энергетический университет

Р. Г. ТАХАВУТДИНОВ

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
ЧАСТЬ I:

ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ И VBA
Методические указания к лабораторным работам, практическим занятиям, расчетному заданию и самостоятельной работе

студентов по дисциплинам «Информатика», «Программные и аппаратные средства информатики», «Алгоритмические языки и программирование», «Вычислительная техника и программирование»


Казань 2004
УДК 516.62(077)

ББК 31.31

М37
Тахавутдинов Р.Г.

Основы алгоритмизации и программирования. Часть I: Пользовательские функции и VBA. Методические указания к лабораторным работам, практическим занятиям, расчетному заданию и самостоятельной работе студентов по дисциплинам «Информатика», «Программные и аппаратные средства информатики», «Алгоритмические языки и программирование», «Вычислительная техника и программирование». Казань: Казан. гос. энерг. ун-т, 2004.

Содержатся рекомендации по выполнению компьютерного практикума, который предусмотрен Государственным образовательным стандартом. Предназначены для студентов всех специальностей при изучении дисциплин «Информатика», «Программные и аппаратные средства информатики», «Алгоритмические языки и программирование», «Вычислительная техника и программирование», а также других информационно-ориентированных дисциплин. Могут быть использованы в ходе лабораторных работ, практических занятий, при выполнении расчетного задания и для самостоятельной работы студентов.


© Казанский государственный энергетический университет, 2003

ВВЕДЕНИЕ
Современное состояние развития программных средств и вычислительной техники позволяет решать многие практически важные задачи в самых различных областях с использованием готовых программных комплексов. При этом зачастую пользователю нет необходимости самому составлять методику решения, алгоритм и программу на каком-либо искусственном языке, как это было десятилетие назад. Вместе с тем, нередко встречаются ситуации, когда эти программные комплексы не предоставляют стандартных опций для решения каких-либо специфических задач пользователя, или же эти стандартные опции являются неудобными для решения конкретных проблем. Поэтому практически во всех программных комплексах предусмотрена возможность их дополнения собственными модулями пользователя, написанными на каком-либо языке программирования. Таким образом, эти
программные комплексы, как правило, имеют свою интегрированную среду программирования или же свой язык макрокоманд, с использованием которых пользователь может автоматизировать работу с этими программными комплексами применительно к собственным задачам, илиже расширить возможности программных комплексов, вводя туда свои собственные модули. Поэтому наряду с умением применять готовые программные продукты, современные пользователи должны обладать также навыками алгоритмизации и программирования, и понимать основные принципы алгоритмизации, которые являются общими для всех искусственных языков и программных сред.

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

В данном компьютерном практикуме предусмотрено обучение основам алгоритмизации и программирования в рамках программного комплекса Microsoft Office с использованием интегрированного с ним языка программирования Visual Basic for Applications (сокращенно общепринята аббревиатура VBA). Таким образом, при прохождении компьютерного практикума как бы стирается грань между использованием готового программного комплекса и программированием: пользователи программируют, находясь в рамках готового программного комплекса, и используют программирование для расширения возможностей этого программного комплекса и автоматизации работы с документами. Данный подход, вне всякого сомнения, является передовым и полностью соответствует современному состоянию развития вычислительной техники и программных средств. Несомненным достоинством принятого подхода является также то, что преподавание компьютерного практикума по дисциплине «Информатика» и другим информационно-ориентированным дисциплинам осуществляется в единой канве, включая как изучение офисных программных средств, так и алгоритмизацию и программирование.
ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ РАБОЧЕГО ЛИСТА И VBA
Visual Basic for Application, или сокращенно VBA, - это объектно-ориентированная среда программирования, которая является одним из диалектов семейства языков программирования высокого уровня Basic. VBA представляет собой единый для всех приложений Microsoft Office язык программирования, который позволяет автоматизировать работу с документами Microsoft Office путем добавления модулей, а также создавать независимые Windows-приложения. Несомненным достоинством VBA является возможность его совместного использования с другими приложениями и языками программирования, то есть VBA может служить средством их интеграции в единую автоматизированную систему. При этом процесс разработки подобных систем занимает на порядок меньше времени по сравнению с использованием традиционных языков программирования.



Для табличного процессора MS Excel пользовательские функции рабочего листа пишутся в стандартном окне редактора VBA, который вызывается следующим образом: Сервис> Макрос>Редактор VisualBasic, или же просто нажатием комбинации клавиш Alt и F11 . Для добавления стандартного модуля в проект выбирается Вставка>Модуль . В общем случае, функция пользователя в стандартном модуле, написанная на алгоритмическом языке VBA, имеет следующую структуру:

Function name (arglist)

[statements]

End Function

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

Остальные особенности создания функций пользователя разобраны в заданиях, которые следуют ниже. Некоторые задания приведены с подробным ходом решения, и студенты должны лишь воспроизвести его на персональном компьютере. Другие задания даются без описания хода решения, или же с частичными пояснениями, поэтому студенты должны выполнить их самостоятельно в аудитории.
ЗАДАНИЕ 1. Написать программу на VBA для функции пользователя, которая вычисляет получаемую потребителем электроэнергию QH по количеству электроэнергии Q, которое вырабатывается производителем, и величине потерь P (%) при ее передаче: QH=Q(100-P)/100. Заполнить ячейку С2 следующей таблицы с использованием построенной функции пользователя:


Решение задания 1:

Вызовем Excel и создадим новую книгу. Воспроизведем таблицу, приведенную выше. Вызовем редактор VBA: Сервис> Макрос>Редактор VisualBasic, или же нажатие комбинации клавиш Alt и F11. Добавим стандартный модуль: Вставка> Модуль. В появившемся окне напишем следующий текст программы:
Function QH(Q, P)

QH=Q*(100-P)/100

End Function

Обратите внимание на то, что строка текста EndFunction появляется автоматически. Далее вернемся в окно Рабочего листа 1, и при помощи мыши выберем ячейку С2, в которую необходимо внести число, вычисляемое по только что созданной пользовательской функции. Для этого выбираем Вставка>Функция, далее в появившемся окне мастера функций выбираем категорию: Определенные пользователем. В списке функций находим созданную нами функцию QH и нажимаем OK. В появившемся окне с помощью мыши необходимо указать аргументы функции: ячейку A2 для аргумента Q и ячейку B2 для P. После нажатия OK в ячейку С2 внесется вычисленное значение функции QH, и лист 1 примет вид:


ЗАДАНИЕ 2. Дополнить созданную при выполнении предыдущего задания таблицу новыми строками с различными значениями выработанной электроэнергии, которым соответствуют различные потери, как показано ниже. Применяя уже имеющуюся пользовательскую функцию QH, методом копирования заполнить столбец значений получаемой электроэнергии:


Решение задания 2:

В подобной стандартной ситуации, которая при обработке таблиц встречается весьма часто, для удобства и ускорения работы, вычисления производят не повторением всех манипуляций для каждой строки, а путем автоматического копирования действий, которые уже были произведены с одной из строк. Для этого в данном случае необходимо расположить указатель мыши в ячейке С2 на маркере ее заполнения. Маркер заполнения выбранной ячейки имеет вид маленького черного квадратика в нижнем правом углу ячейки. При размещении указателя мыши на маркере заполнения он примет вид маленького черного крестика. С помощью мыши протяните маркер заполнения ячейки С2 вниз до ячейки С7. При этом будут произведены автоматические вычисления и заполнение требуемых ячеек:


Здесь использована относительная ссылка на ячейки при копировании. Отличия относительной ссылки от абсолютной мы поймем при выполнении следующего задания.
ЗАДАНИЕ 3. Дополнить предыдущую таблицу расчетами получаемой электроэнергии при условии постоянства потерь, которые равны 5%:



Решение задания 3:

Величина 5% занесена в ячейку B2, и при копировании действий на другие строки в качестве аргумента P пользовательской функции QH должна использоваться ячейка B2. Здесь мы имеем другую стандартную ситуацию, когда ссылка на ячейку не должна изменяться при ее копировании. Такие ссылки называются абсолютными и создаются постановкой знака $. Например, $B$2 представляет собой абсолютную ссылку на ячейку B2. Для практического выполнения этого задания поставим указатель мыши на ячейке D2. После этого аналогично ходу выполнения задания 1 вызовем созданную нами пользовательскую функцию QH, однако в качестве ее аргумента P напечатаем с клавиатуры $B$2:


Поле нажатия OK произойдет заполнение ячейки D2:


Для автоматического вычисления всего столбца при постоянстве потерь в 5% протянем маркер заполнения ячейки D2 вниз, выделяя этот столбец до ячейки D7. Будут произведены автоматические вычисления и таблица примет следующий вид:


Обратите внимание на различие чисел в столбцах C и D: при вычислении столбца C использовалось текущее значение величины потерь, которое изменялось при переходе от строки к строке, так как ссылка на ячейку B2 была относительной. При вычислении же столбца D все время использовалось одно и то же число 5 в ячейке B2, так как ссылка на эту ячейка бала абсолютной.

Задание 4. Написать программу на VBA для следующей функции пользователя, используя ее дополнить таблицу вычисленными значениями и построить график зависимости y=y(x): ­­­­­­­­­­­­­­­­­­­­­




X

0.10

0.15

0.20

0.25

0.30

0.35

0.40

0.45

0.50

Y