- •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. Реализация проекта
Используемые переменные
Реквизит |
Имя |
Назначение |
Ценаi |
curЦена |
Цена текущего товара, грн. |
Количествоi |
intКоличество |
Количество текущего товара, шт. |
i |
i |
Номер по порядку текущего товара |
S |
curS |
Общая стоимость купленных товаров, грн. |
6.3.5. Интерфейс с пользователем
Поскольку исходных данных, которые используются при решении задачи, может оказаться много (в зависимости от количества видов покупок), то вводить их значения с помощью текстовых полей на форме не представляется целесообразным. Для этой цели обычно используют специальные диалоговые окна ввода.
Ввод цены товара i-того вида производится с помощью окна ввода, приведенного на рис. 6.2, а количества товара – с помощью аналогичного окна (рис. 6.3).
Перед вводом данных по товару очередного вида пользователь должен ответить на запрос с помощью окна сообщений (рис. 6.4). Полученный результат решения задачи выводится в диалоговом окне (рис. 6.5).
Рис. 6.2. Диалоговое окно ввода Рис. 6.3. Диалоговое окно ввода
цены вида товара количества вида товара
Рис. 6.4. Окно Рис. 6.5. Диалоговое окно
сообщений вывода результата
Поскольку ввод и вывод осуществляется с помощью специальных окон, на форме имеется только одна кнопка, нажатием на которую начинается процесс определения стоимости покупок (рис. 6.6).
Рис. 6.6. Форма для расчета стоимости покупок
6.3.6. Код программы
В процедуре, которая обрабатывает событие "Щелчок на кнопке «Вычислить»", используются следующие операторы:
Option Explicit
Private Sub cmdВычислить_Click()
'Описание переменных
Dim curЦена As Currency, _
intКоличество As Integer, _
i As Integer, _
curS As Currency
curS = 0 'Общая стоимость
i = 0 'Номер покупки
'Цикл по обработке покупок
Do While MsgBox("Будут еще покупки?", vbQuestion + vbYesNo, _
"Покупки") = vbYes 'Условие продолжения
i = i + 1
'Ввод цены и количества
curЦена = CCur(InputBox("Введите цену", _
i & "-й товар"))
intКоличество = CInt(InputBox("Введите количество", _
i & "-й товар"))
'Вычисление общей стоимости
curS = curS + curЦена * intКоличество
Loop 'Конец цикла
'Вывод результата
MsgBox "Стоимость всех покупок " _
& Format(curS, "0.00") & " грн.", , _
"Благодарим за покупки"
End Sub
6.3.7. Анализ проекта
Объявление переменных осуществляется в операторе Dim. Их имена и типы соответствуют параметрам, указанным в п. 6.3.4.
Для организации повторений по вводу и обработке данных для каждой покупки используется цикл Do Loop, поскольку заранее не известно количество покупок. Так как возможен случай, когда не произведено ни одной покупки, применяется конструкция While с верхним окончанием (цикл с предусловием).
В качестве условия повторения использовано сравнение
MsgBox("Будут еще покупки?", vbQuestion + vbYesNo, _
"Покупки") = vbYes
Действие встроенной функции MsgBox состоит в вызове окна сообщений, в котором выводится заданное сообщение (первый параметр) и заголовок (третий параметр). В окне сообщений могут выводиться различные рисунки и кнопки, которые определяются суммой соответствующих констант (второй параметр). Названия констант запоминать не нужно, т.к. они выводятся при задании соответствующего параметра в виде подсказок. Второй параметр можно опустить, тогда на окне сообщений выводится только кнопка «ОК».
Если же в окне сообщений несколько кнопок, то пользователь может нажать любую из них. В этом случае значением функции MsgBox будет соответствующая этой кнопке константа. Названия констант-результатов также выводятся в виде подсказок. В условии после слова While проверяется, нажата ли кнопка «Да» (MsgBox(…)=vbYes).
Функция MsgBox может использоваться как оператор вызова процедуры. В этом случае она указывается в отдельной строке, ее параметры не заключаются в скобки. В программе она так применена для вывода результата об общей стоимости покупок
Для ввода исходных данных цены и количества по каждому виду товара используется функция InputBox, которая вызывает диалоговое окно ввода, на котором выводится подсказка (первый параметр) и заголовок (второй параметр). Нужное значение вводится в поле ввода на этом окне. Ввод значения завершается нажатием кнопки «ОК».
Значением функции является введенное пользователем значение. Оно имеет строковый тип. Для преобразования в нужный числовой тип используются функции CСur (для цены – в денежный тип) и CInt (для количества – в целый тип).