Скачиваний:
0
Добавлен:
01.03.2025
Размер:
683.01 Кб
Скачать

Министерство образования и науки российской федерации

Государственное образовательное учреждение высшего профессионального образования

«Юго-Западный государственный университет»

(ЮЗГУ)

Кафедра информатики и прикладной математики

УТВЕРЖДАЮ

Первый проректор –

проректор по учебной работе

_____________Е.А. Кудряшов

«___»_______________2010г.

Алгоритмизация и программирование на vba: структурное программирование

Методические указания и задания по выполнению лабораторной работы для студентов специальностей 270100, 270102, 270105, 270205, 140200, 140211, 040200, 040201, 080401.

КУРСК -2010 г

УДК 681.3.06

Составители: В.В. Ефремов, И.Н. Ефремова

Рецензент

Кандидат технических наук, доцент

Алгоритмизация и программирование на VBA: Структурное программирование: Методические указания и задания по выполнению лабораторной работы по дисциплине «Информатика» / Юго-зап. гос. ун-т; сост.: В.В. Ефремов, И.Н. Ефремова. Курск, 2010. 60 с.: ил. 23. Библиогр.: с. 60.

Содержат сведения о парадигме структурного программирования, реализации таких средств структурного программирования как процедуры и функции на VBA. На примерах рассматриваются подходы к решению практических задач. Указываются правила оформления отчёта. Приводятся индивидуальные варианты задач.

Предназначены для студентов специальностей 270100, 270102, 270105, 270205, 140200, 140211, 040200, 040201, 080401 дневной формы обучения.

Текст печатается в авторской редакции

Подписано в печать Формат 60х84 1/16.

Усл. печ. л. . Уч.-изд. л. . Тираж 100 экз. Заказ . Бесплатно

Юго-Западный государственный университет.

305040, Г. Курск, ул. 50 лет Октября, 94. Содержание

1 Цель работы 4

2 Общие сведения 4

2.1 Структурное программирование 4

2.2 Реализация подпрограмм на VBA. 6

2.2.1 Описание подпрограмм GoSub - Return 6

2.2.2 Описание процедур и функций. 7

2.2.3 Вызов процедур и функций 11

2.2.4 Рекурсивные процедуры и функции 17

2.2.5 Использование функций пользователя в Excel 20

2.3 Обработка двумерных массивов. 21

2.3.1 Пример 1. Транспонирование матрицы. 21

2.3.2 Пример 2. Диагонали 28

2.3.3 Пример 3. Сортировка 34

2.3.4 Пример 4. Решение системы линейных алгебраических уравнений (СЛАУ) 43

3 Задание 59

4 Содержание отчёта 59

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

6 Варианты задач 60

7 Список литературы 62

1Цель работы

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

2Общие сведения

VBA относится к языкам структурного программирования за счёт реализации базовых алгоритмических конструкций и подпрограмм в соответствии с принципами структурного программирования.

2.1Структурное программирование

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

К базовым алгоритмическим конструкциям относятся «Следование», «Ветвление» и «Цикл». В рамки методологии не вписывается оператор безусловного перехода GoTo, поэтому его использование при написании структурированной программы запрещено. Теорема Бёма-Джакопини [1] доказывает, что любой алгоритм можно привести к структурированному виду. Замечено [2] что структурированные алгоритмы легче поддаются анализу, проще для понимания и лучше приспособлены для модифицирования, так как каждая базовая алгоритмическая структура имеет один вход и один выход и её можно рассматривать изолированно, не вдаваясь в подробности функционирования остальных частей программы.

С точки зрения математического анализа структурное программирование базируется на теории рекурсивных функций, программа рассматривается как частично-рекурсивный оператор над подпрограммами и операциями. Также, структурное программирование базируется на теории доказательств, прежде всего на естественном выводе в рамках интуитивистской логики. В этом смысле, структура программы соответствует структуре простейшего математического рассуждения, лишённого сложных лемм и абстрактных понятий [4].

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

Часто в алгоритмах на разных этапах решения задачи могут быть выделены последовательности действий, выполняющие одну и ту же подзадачу. Такие последовательности можно обнаружить, рассматривая предельно подробное описание алгоритма программы, либо предположить их существование исходя из условий задачи. Эти последовательности действий называются «типовой процесс» и оформляются как подзадача, которая описывается однократно, и в дальнейшем многократно может быть использована. Такой принцип разбиения задачи на подзадачи называется структурным программированием снизу вверх или восходящим программированием.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]