
- •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.6. Код программы
Для реализации задачи планирования в коде нужно предусмотреть обработку следующих двух событий:
потеря фокуса текстовым полем txtТребуется;
изменение любого значения в массиве текстовых полей txtПлан.
Причем обработка обоих событий производится одинаково в соответствии со схемой алгоритма, представленной на рис. 8.2. Поэтому для обработки первого события составляется процедура по схеме алгоритма, а тело второй процедуры состоит из вызова первой. Тексты соответствующих процедур представлены ниже.
Option Explicit
'Вычисление отклонения заданного плана на неделю
'от требуемого значения показателя
Private Sub txtТребуется_LostFocus()
Dim sngИтого As Single 'Сумма плана по дням
Dim sngТребуется As Single 'Требуемое значение
Dim i As Byte 'Номер дня недели
'Вычисление суммы плановых значений по дням недели
sngИтого = 0
For i = 1 To 7
sngИтого = sngИтого + CSng(txtПлан(i - 1))
Next i
'Вывод на форму
lblИтого = Format(sngИтого, "0.00")
'Подготовка к использованию в вычислениях
sngТребуется = CSng(txtТребуется)
'Вывод сообщения об отклонении
If sngИтого > sngТребуется Then
lblОтклонение = "Перевыполнение"
lblОтклонение.BackColor = vbYellow
ElseIf sngИтого < sngТребуется Then
lblОтклонение = "Недовыполнение"
lblОтклонение.BackColor = vbRed
Else
lblОтклонение.BackColor = vbGreen
lblОтклонение = "Норма"
End If
'Вычисление и вывод величины отклонения
txtОтклонение = Abs(sngИтого - CSng(txtТребуется))
End Sub
'Те же действия, что и в предыдущей процедуре,
'но при изменении планового значения в любой день
Private Sub txtПлан_Change(Index As Integer)
txtТребуется_LostFocus
End Sub
8.2.7. Реализация проекта
Запустить на выполнение VB для создания нового проекта.
Задать заголовок формы и ее имя.
Для ввода требуемого значения показателя создать текстовое поле txtТребуется и надпись к нему.
4. Для определения контейнера, в котором будут содержаться данные по дням недели, создать рамку fraEжедневный_план достаточных размеров, чтобы в ней поместился массив текстовых полей из семи элементов.
5. Для ввода плановых значений по дням недели создать внутри рамки текстовое поле txtПлан и надпись lblПн (для понедельника) к нему. Свойству Text для поля txtПлан задать значение ноль. Скопировать пару этих элементов в буфер, а затем вставить из буфера в рамку. При вставке подтвердить запрос VB о том, что создается массив элементов. Затем еще пять раз произвести вставки из буфера. Таким образом, в рамке будет содержаться семь текстовых полей с соответствующими надписями (заголовки надписей скорректировать в соответствии с днями недели).
Для вывода суммы плановых значений по дням недели (величина «Итого») создать ниже рамки пару надписей на одном уровне – свойству Caption левой задать значение Итого, а для правой установить значения следующих свойств:
Name: lblИтого,
Caption: пусто,
BorderStyle: 1.
Для вывода текстовой и числовой информации об отклонении суммы плановых значений от требуемой величины показателя под предыдущей парой надписей создать текстовое поле с надписью слева от него. Установить значения следующих свойств надписи:
Name: lblОтклонеие,
Caption: пусто.
Для текстового поля установить значения следующих свойств:
Name: txtОтклонение
Text: пусто.
Для создания процедуры обработки события ”Потеря фокуса текстовым полем txtТребуется” дважды щелкнуть на этом поле, в поле со списком <Procedure> выбрать событие LostFocus и ввести тело процедуры.
Для создания процедуры обработки события “Изменение значения в массиве текстовых полей txtПлан” дважды щелкнуть на любом текстовом поле массива элементов управления txtПлан и в заготовку процедуры скопировать имя предыдущей процедуры txtТребуется_LostFocus
10. Сохранить форму и проект в папке на диске D:.