Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB. Часть2.doc
Скачиваний:
23
Добавлен:
02.02.2015
Размер:
870.4 Кб
Скачать

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. Назначение процедур и их виды

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

Применение процедур имеет следующие достоинства:

  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. Остается только ввести текст тела процедуры.

Вместо ввода заголовка процедуры можно воспользоваться командой ToolsAdd Procedure, которая вызывает диалоговое окно «Add Procedure». В нем достаточно ввести имя процедуры в поле Name и щелкнуть на кнопке «ОК», чтобы в коде появился заголовок процедуры без параметров и ее окончания.