- •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. Реализация проекта
8.2.8. Анализ проекта
Для вычисления суммы плановых значений по дням недели в коде используется оператор цикла со счетчиком, который изменяется от 1 до 7. Поскольку нумерация элементов массива текстовых полей txtПлан начинается не с единицы (как счетчик цикла), а с нуля, то в теле цикла при обращении к элементам массива индекс на единицу меньше, чем счетчик (txtПлан(i-1)).
В зависимости от результата сравнения итогового значения с требуемым текстовая информация выдается на фоне, который имеет соответствующий цвет. Цвет фона задается оператором присваивания свойству цвета фона нужной константы среды VB, например,
lblОтклонение.BackColor=vbYellow
При выводе численного значения величины отклонения не требуется указания знака (+, -), поэтому при его вычислении используется встроенная функция Abs, которая возвращает абсолютное значение аргумента.
Ссылка в процедуре txtПлан_Change на имя процедуры txtТребуется_LostFocus означает, что процедура txtПлан_Change будет выполнять те же действия, что и процедура txtТребуется_LostFocus.
В приложении принята стратегия немедленного реагирования на вводимые значения. В данном приложении можно было бы использовать и другую стратегию – производить расчеты только после окончания ввода данных по всем дням недели. В этом случае нужно было бы добавить на форму командную кнопку, щелчок на которой запускал бы процесс вычислений.
8.2.9. Выполнение программы и анализ полученных результатов
Цехом получен заказ на изготовление 100000 канцелярских скрепок, который нужно выполнить за неделю.
Для составления календарного плана работы цеха использовалась разработанная программа. Было рассмотрено ряд вариантов плана. На рис. 8.3. представлен один из них.
Рис. 8.3. Вариант календарного плана
При работе по этому плану предусматривается один выходной – воскресенье. План составлен с незначительным запасом 5000 шт. с учетом того, что может быть допущен небольшой брак в пределах 5% от заказа.
9. Пользовательский тип данных
9.1. Определение и обращение
Пользовательский тип данных (user-defined types) представляет собой объединение фиксированного числа элементов, которые называются полями.
В отличие от массивов поля могут иметь разные типы. Кроме того, доступ к ним осуществляется не по индексу, а по имени.
Каждое поле в пользовательском типе определяется именем и типом. С помощью имени поля указывается нужный элемент.
Определение пользовательского типа данных производится с помощью ключевого слова Type следующим образом
Type Имя_типа
Элемент1 [([Размерность])] As Тип
[Элемент2 [(Размерность])] As Тип
…
End Type
Переменная пользовательского типа описывается, как обычно, в операторе Dim.
Пример определения пользовательского типа.
Type Место
strСтрана As String*10
strГород As String*15
End Type
Type Товар
strНаименование As String*20
udtПроизводитель As Место
curЦена As Currency
intКоличество As Integer
End Type
Dim udtМебель As Товар
В примере пользовательской тип Товар содержит в качестве элемента другой пользовательский тип Место.
Примечания.
1. Поля строкового типа в пользовательском типе могут быть только фиксированной длины (например, String*10 состоит из десяти символов)
2. В именах переменных пользовательского типа используется префикс udt (иногда usr).
3. Тип, используемый в качестве элемента в другом более сложном типе, должен быть описан до его использования.
Поля переменной пользовательского типа могут использоваться в различных операторах кода также как и простые переменные. Обращение к ним осуществляется подобно свойствам объектов с использованием точки после имени переменной.
Пример использования полей переменной пользовательского типа:
udtМебель.strНаименование = "Стол"
udtМебель.udtПроизводитель.strГород = "Харьков"
curСтоимость = udtМебель.curЦена * udtМебель.intКоличество