- •5. Проектирование разветвляющихся вычислительных процессов
- •5.1. Условный оператор
- •5.2. Проектирование приложения, реализующего разветвляющийся вычислительный процесс
- •Используемые переменные
- •5.2.5. Интерфейс с пользователем
- •5.2.6. Код программы
- •5.2.7. Реализация проекта
- •5.2.8. Анализ проекта
- •5.2.9. Выполнение программы и анализ полученных результатов
- •5.4. Пример использования оператора выбора
- •6. Проектирование приложений с циклами
- •6.1. Назначение операторов цикла
- •6.2. Условные циклы
- •6.3. Проектирование приложения на базе условного цикла с верхним окончанием
- •Используемые переменные
- •6.3.5. Интерфейс с пользователем
- •6.3.6. Код программы
- •6.3.7. Анализ проекта
- •6.3.8. Выполнение программы и анализ полученных результатов
- •6.4. Проектирование приложения с использованием условного цикла с нижним окончанием
- •Используемые переменные
- •6.4.5. Интерфейс с пользователем
- •6.4.6. Код программы
- •6.4.7. Анализ проекта
- •6.4.8. Выполнение программы и анализ полученных результатов
- •Планируемые расходы на ремонт офиса
- •6.5. Цикл со счетчиком
- •6.6. Проектирование приложения с использованием цикла со счетчиком
- •6.6.7. Реализация проекта
- •6.6.8. Анализ проекта
- •6.6.9. Выполнение программы и анализ полученных результатов
- •Остаток товаров на 17.09.01
- •7. Массивы данных
- •7.1. Общие сведения о сложных типах
- •Стоимость товаров
- •7.2. Описание и обращение к массивам
- •7.3. Динамические массивы
- •7.4. Использование массивов при решении экономической задачи
- •Используемые данные
- •7.4.5. Интерфейс с пользователем
- •7.4.6. Код программы
- •7.4.7. Реализация проекта
- •7.4.8. Анализ проекта
- •7.4.9. Выполнение программы и анализ полученных результатов
- •Прайс-лист
- •8. Массивы элементов управления
- •8.1. Назначение и создание массивов элементов управления
- •"Группа переключателей"
- •8.2.4. Структура данных
- •Используемые данные
- •8.2.5. Интерфейс с пользователем
- •8.2.6. Код программы
- •8.2.7. Реализация проекта
- •8.2.8. Анализ проекта
- •8.2.9. Выполнение программы и анализ полученных результатов
- •9. Пользовательский тип данных
- •9.1. Определение и обращение
- •9.2. Оператор присоединения With
- •10. Файлы
- •10.1. Назначение файлов
- •10.2. Операции с файлами
- •10.3. Режимы доступа
- •10.4. Файлы с произвольным доступом
- •10.5. Проектирование приложения с файлами
- •10.5.1. Постановка задачи
- •10.5.2. Экономико-математическая модель
- •10.5.3. Алгоритм решения задачи
- •10.5.4. Структура данных
- •10.5.5. Интерфейс с пользователем
- •10.5.6. Код проекта
- •10.5.7. Реализация проекта
- •10.5.8. Анализ проекта
- •9.5.9. Выполнение программы и анализ полученных результатов
- •Данные по заказу на крепежные изделия
- •11. Процедуры и функции
- •11.1. Назначение процедур и их виды
- •11.2. Описание процедур
- •11.3 Вызов процедуры
- •11.4. Функции
- •11.5. Использование процедур и функций при решении экономической задачи
- •11.5.1. Код проекта
- •11.5.2. Реализация проекта
9.5.9. Выполнение программы и анализ полученных результатов
Цех по изготовлению крепежных изделий получил заказ, данные о котором представлены в табл. 10.2.
Таблица 10.2
Данные по заказу на крепежные изделия
Наименование |
Норма расхода стали на 1 изд. |
Количество |
болт |
0,05 |
1000 |
гайка |
0,025 |
1000 |
шуруп |
0,03 |
5000 |
винт |
0,02 |
2000 |
Требуется найти наиболее материалоемкий вид изделий.
На рис. 10.10 показан пример заполнения файла данными по изделию "болт".
На рис. 10.11 приведена форма, отображающая содержимое файла.
На рис. 10.12 представлена информация по изделию, на которое требуется максимальное количество стали.
Рис. 10.10. Форма для заполнения файла данными
Рис. 10.11. Форма "Содержимое файла"
Рис. 10.12. Форма, отображающая результат решения задачи
11. Процедуры и функции
11.1. Назначение процедур и их виды
В грамматике обычного языка (украинского, русского, английского и т.д.) логически завершенную мысль оформляют в виде предложения. Предложения собираются в абзацы, а те, в свою очередь, в разделы и т.д. В языках программирования аналогично логически завершенную часть алгоритма представляют в виде процедуры. На основе более мелких процедур строятся более крупные и т.д. вплоть до построения всего приложения. Построение приложений на основе процедур позволяет реализовать в информатике системный подход в решении задач, когда большая задача, основанная на сложном алгоритме, разбивается на подзадачи, а те, в свою очередь на более мелкие подзадачи и так до тех пор, пока решение каждой из мелких задач не станет абсолютно понятным.
Применение процедур имеет следующие достоинства:
улучшает удобство чтения программы;
2) упрощает возможность локального изменения программы при различных модификациях;
3) локализует распределение памяти под переменные, которые используются только в данной процедуре;
4) особенно эффективно применение процедур в тех случаях, когда одна и та же процедура используется в различных частях приложения;
5) позволяет использовать отлаженные процедуры в других приложениях, в том числе и в тех, которые создаются другими программистами.
В зависимости от назначения процедуры подразделяются на процедуры обработки событий и процедуры общего назначения.
При работе в визуальной среде действия по обработке информации вызываются теми или иными событиями (загрузка формы, щелчок на кнопке, изменение значения и т.п.). Эти события приводят в действие соответствующие процедуры обработки событий, в которых описан алгоритм обработки информации.
Часто такое описание бывает достаточно длинным. Для того, чтобы выделить отдельные этапы алгоритма используют процедуры общего назначения. Они непосредственно не связаны с каким-либо событием и создаются в соответствии с логикой выполнения операций обработки информации. Далее более подробно будут рассмотрены процедуры общего назначения.
11.2. Описание процедур
При использовании процедур различают их описание и вызов. Описание процедуры представляет собой запись алгоритма, по которому производится обработка данных, и само по себе никаких действий не выполняет. Указанные в описании действия производятся при вызове процедуры.
Описание процедуры общего назначения помещается в секции общих описаний формы (General Declarations) или в стандартном модуле. Вызов же располагается в том месте операторной части кода, где необходимо выполнить указанные в описании процедуры действия.
Если описание процедуры находится в коде формы, то ее можно вызвать только в коде этой же формы. Если же процедура описана с ключевым словом Public в стандартном модуле, то вызвать ее можно в коде любой формы или любом стандартном модуле приложения.
Стандартный модуль представляет собой файл с расширением .bas. В нем могут размещаться описания различных общих объектов, используемых в проекте (константы, переменные, типы данных, процедуры). В проекте может быть несколько стандартных модулей (также как и форм, но в отличие от файла формы они содержат только код). Каждый модуль представляется отдельным значком в окне проекта. Для перехода к коду нужного модуля достаточно дважды щелкнуть на его значке.
Чтобы создать модуль нужно:
1. Выбрать команду Add Module в меню Project или нажать стрелку справа от кнопки «Add Form» (вторая слева на стандартной панели инструментов) и из появившегося списка кнопок выбрать «Module».
2. В появившемся диалоговом окне «Add Module» во вкладке «New» выбрать значок «Module» и щелкнуть на кнопке «Открыть».
В появившееся окно кода можно вносить описание общих объектов, в том числе и процедур.
Имя модулю задается при сохранении проекта (например, если щелкнуть на кнопке «Сохранить» на панели инструментов).
Описание процедуры имеет следующий вид:
[Public l Private] [Static] Sub ИмяПроцедуры (СписокФормальныхПараметров)
ОператорыТелаПроцедуры
End Sub
Первая строка называется заголовком процедуры, а последняя – ее окончанием. Между заголовком и окончанием располагается тело процедуры. Оно состоит из операторов, которые указывают, какие действия должна выполнять процедура.
Ключевое слово Public означает, что процедуру можно вызвать в коде любой формы или модуля приложения, а Private – только в той форме или модуле, в котором она описана. По умолчанию подразумевается Public.
Если используется ключевое слово Static, то переменные, которые описаны внутри процедуры, будут сохранять свои значения между последовательными ее вызовами (например, если при каждом вызове процедуры накапливается сумма).
Если процедура не предназначена для обработки событий, то ее имя может быть каким угодно (обычно в имени указывается назначение процедуры, например, Налоги или Сортировка_данных).
В списке формальных параметров указываются те величины, от которых зависит описанный в операторной части процедуры процесс (входные параметры) и переменные, в которые помещаются результаты работы процедуры (выходные параметры). Иногда некоторые из них могут совпадать (входные параметры могут быть и выходными).
Формальный параметр представляется именем переменной, после которой может быть указан ее тип. Друг от друга параметры отделяются запятыми.
Пример заголовка процедуры:
Public Sub Поиск(sngMaxПотребность As Single, iMax As Integer)
Иногда используют процедуры без параметров. В этом случае после имени записывают открывающую и сразу же закрывающую скобки, например, Sub Приветствие( ).
Такие процедуры, как правило, каждый раз выполняют одни и те же действия вне зависимости от значений обрабатываемых данных.
Среди операторов тела процедуры могут находиться операторы, в которых описываются константы, типы и переменные, используемые только в данной процедуре и память под них выделяется только во время выполнения процедуры.
Здесь также может присутствовать оператор Exit Sub, действие которого заключается в завершении работы процедуры.
Главным же в теле процедуры является последовательность операторов, реализующих алгоритм, ради которого создавалась процедура.
Для начала ввода описания процедуры необходимо установить курсор в том месте кода, где оно будет располагаться, и ввести с клавиатуры ключевое слово Sub, имя процедуры и список формальных параметров. После этого автоматически появляется строка окончания процедуры End Sub. Остается только ввести текст тела процедуры.
Вместо ввода заголовка процедуры можно воспользоваться командой Tools – Add Procedure, которая вызывает диалоговое окно «Add Procedure». В нем достаточно ввести имя процедуры в поле Name и щелкнуть на кнопке «ОК», чтобы в коде появился заголовок процедуры без параметров и ее окончания.