Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Оснащения врачебно-сестринской бригады.
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2021-04-18 | 124 |
5.00
из
|
Заказать работу |
|
|
Каждая переменная, используемая в коде программы, имеет определенный тип. Этот тип может быть указан в операторе Dim. Объявление переменной в операторе Dim называется явным. Помимо явного объявления тип переменной может быть задан с помощью суффикса. Суффикс представляет собой специальный символ, который ставится в конце имени переменной. Он определяет тип данных, которые могут храниться в этой переменной. Суффиксы типов данных представлены в табл. 4.8.
Суффикс достаточно задать один раз, когда переменная встречается в программе первый раз.
Таблица 4.8
Суффиксы типов данных
Тип переменной | Символ | Пример |
Integer | % | i % |
Long | & | ИдентКод& |
Single | ! | Вес! |
Double | # | Теплоемкость# |
Currency | @ | Цена@ |
String | $ | Наименование$ |
Byte | Нет | |
Boolean | Нет | |
Date | Нет | |
Variant | Нет |
При использовании имен переменных в программе возможны описки. Например, в имени Вес вместо русской буквы “эс”, можно набрать на клавиатуре английскую букву “си”. По внешнему виду они ничем не различаются, но в программе это будут совершенно различные переменные. Поэтому вполне возможно, что они могут иметь разные значения. Такая ситуация может привести к непредсказуемому результату.
Во избежание таких ситуаций рекомендуется все переменные объявлять явно. Чтобы в программе жестко выдерживалась такая дисциплина, нужно в коде перед всеми процедурами задать оператор Option Explicit. В этом случае VB контролирует появление новых имен. И если переменная не объявлена в операторе Dim, будет выдано сообщение об ошибке.
Для того чтобы VB автоматически устанавливал оператор Option Explicit перед первой процедурой кода, достаточно в меню Tools выбрать команду Options и во вкладке «Editor» появившегося диалогового окна «Options» установить флажок Require Variable Declaration.
|
Проектирование решения задачи с различными типами данных
Постановка задачи
Цена на товар установлена производителем на период одной недели. Определить стоимость товара с учетом налога на добавленную стоимость (НДС) по известной цене производителя и количеству. По заданной дате начала периода указать начальную и конечную даты действия установленной цены.
Экономико-математическая модель
Вычисление стоимости товара с учетом НДС производится по формуле:
Стоимость = Цена ндс * Количество,
где Цена ндс – цена с учетом НДС определяется по формуле:
Цена ндс = Цена + Цена * Ставка ндс /100
Ставка НДС в настоящее время составляет 20%.
Конечная дата действия цены вычисляется по формуле:
Окончание = Начало + КД,
где Начало и Окончание – соответственно даты начала и окончания периода; КД – количество дней в периоде (в данном случае КД = 7 – неделя).
Алгоритм решения задачи
Алгоритм решения задачи приведен на рис. 4.1.
Структура данных
При решении задачи используются следующие данные:
Начало, Окончание – данные типа дата/время;
КД, Количество – целые числа;
Ставка НДС – дробное число;
Цена, Цена ндс, Стоимость – числа денежного типа.
Рис. 4.1. Алгоритм решения задачи
Из них данные «КД» и «Ставка НДС» являются константами и в программе имеют такие же имена. «Начало», «Цена» и «Количество» вводятся с клавиатуры в текстовые поля, поэтому в программе им присвоены имена соответственно txtНачало, txtЦена и txtКоличество. «Цена ндс» и «Стоимость» – вычисляемые поля, которые непосредственно не соответствуют никаким элементам управления на форме, поэтому в программе они представлены переменными денежного типа curЦенандс и curСтоимость соответственно. Вычисляемая величина «Окончани»е выводится на форму в виде надписи, поэтому в программе имеет имя l blрзтОкончание.
|
Аналогично результат решения задачи, содержащий выходные данные вместе с пояснительным текстом, представляется на форме в виде надписи с именем lblРезультат.
Используемые в программе величины приведены в табл. 4.9.
Таблица 4.9
Используемые данные
Реквизит | Имя | Назначение |
Начало | txtНачало | Начало периода |
Окончание | lblрзтОкончание | Окончание периода |
КД | КД | Количество дней |
Ставка НДС | СтавкаНДС | Ставка налога на добавленную стоимость |
Цена | txtЦена | Цена производителя |
Ценандс | curЦенаНДС | Цена с учетом НДС |
Стоимость | curСтоимость | Стоимость товара |
Результат | lblРезультат | Результат решения задачи |
Интерфейс с пользователем
Решение задачи производится с помощью формы, приведенной на рис. 4.2.
На форме слова "Начало", "Цена" и "Количество" представляются надписями и соответствующие исходные данные вводятся в текстовые поля, расположенные справа от них.
Слово "Окончание" и соответствующее вычисленное значение представляются надписями. Результат решения задачи выводится в область под кнопкой «Вычислить». Эта область также представляется надписью.
Рис. 4.2. Форма для вычисления стоимости товара с учетом НДС
Взаимодействие пользователя с формой осуществляется следующим образом. При запуске программы на выполнение (событие «Загрузка формы») в текстовом поле «Начало» выводится текущая дата, а в поле надписи «Окончание» – та же дата, увеличенная на КД дней (в нашем случае на 7 дней).
Дату, выведенную в текстовом поле «Начало» можно изменить. При этом после перехода к другому элементу управления (событие «Потеря фокуса») автоматически пересчитывается дата окончания периода.
После ввода цены и количества нужно щелкнуть на кнопке «Вычислить» (событие «Щелчок»). Происходит вычисление стоимости и вывод результата в соответствующую область.
Код программы
Для реализации задачи в коде нужно предусмотреть обработку следующих трех событий:
1) загрузка формы;
2) потеря фокуса текстовым полем "Начало";
3) щелчок на кнопке "Вычислить".
Тексты соответствующих процедур представлены ниже.
Option Explicit 'Обязательное описание переменных
Const КД = 7 'Количество дней в периоде
'Вычисление стоимости товара
Private Sub cmdВычислить_Click()
|
Const СтавкаНДС = 20
'Описание переменных
Dim curЦенаНДС As Currency, _
curСтоимость As Currency
'Вычисление цены с учетом НДС
curЦенаНДС = CCur(txtЦена) + CCur(txtЦена) * СтавкаНДС / 100
'Вычисление стоимости
curСтоимость = curЦенаНДС * CInt(txtКоличество)
'Формирование результата
lblРезультат = "Стоимость товара с учетом НДС составляет " & _
Format(curСтоимость, "0.00") & " грн." & vbCrLf & _
"Цена действует на период с " & txtНачало & _
" до " & lblрзтОкончание
End Sub
'Задание текущего значения даты начала периода
'и вычисление даты его окончания
Private Sub Form_Load()
txtНачало = Date
lblрзтОкончание = Date + КД
End Sub
'Вычисление даты окончания периода
'при изменении его начала
Private Sub txtНачало_LostFocus()
lblрзтОкончание = CDate(txtНачало) + КД
End Sub
Реализация проекта
1. Запустить на выполнение VB для создания нового проекта.
2. Построить форму согласно проекту.
3. Дважды щелкнуть на форме и в открывшемся окне кода в заготовку процедуры Form_Load ввести ее тело, т.е. операторы:
txtНачало = Date
lblрзтОкончание = Date + КД
4. В окне кода в поле со списком Object выбрать элемент General, чтобы перейти в раздел общих описаний формы и там ввести описание константы КД (Const КД =7).
5. В окне кода в поле со списком Object выбрать элемент txtНачало, а в поле со списком Procedure – событие «LostFocus» и в заготовку процедуры txtНачало_LostFocus ввести ее тело, т.е., оператор:
lblрзтОкончание =СDate(txtНачало)+ КД
6. В окне кода в поле со списком Object выбрать элемент «сmdВычислить», а в поле со списком Procedure – событие «Click» и в заготовку процедуры сmdВычислить_Click ввести ее тело.
Анализ проекта
Каждое событие обрабатывается отдельной процедурой, причем каждое событие вызывает разные действия. Поэтому код приложения состоит из трех процедур.
В двух процедурах Form_Load и txtНачало_LostFocus используется константа «КД». Для того чтобы она была доступна в обеих процедурах, константу помещают в общей части кода формы (перед всеми процедурами).
В коде приложения применяется принцип явного описания переменных. Для того чтобы система VB следила за обязательностью явного описания каждой используемой переменной, вначале кода стоит оператор Option Explicit.
|
В процедуре Form_Load использована встроенная функция Date, с помощью которой определяется текущая дата.
Процедура txtНачало_LostFocus предназначена для определения даты окончания периода в случае изменения начальной даты. Поскольку начальная дата содержится в текстовом поле txtНачало (строковый тип), то для преобразования в тип дата/время применяется функция CDate.
Процедура cmdВычислить_Click предназначена для вычисления стоимости товара с учетом НДС и вывода результата.
Для выполнения расчетов используется постоянная величина ставки НДС (20 %). Она применяется только в этой процедуре. Поэтому НДС объявлена внутри процедуры как константа.
Цена товара с учетом НДС и соответствующая стоимость являются переменными величинами, поскольку они вычисляются на основе введенных пользователем значений цены производителя и количества товара. Поэтому в коде цена товара с учетом НДС и стоимость описаны как переменные в операторе Dim.
Т. к. исходные данные цена и количество вводятся в текстовые поля (строковый тип) и в дальнейшем участвуют в арифметических выражениях, для их преобразования к числовому типу используются встроенные функции CCur() и CInt().
При формировании сообщения о результате (строковый тип) используется встроенная функция Format(curСтоимость,”0.00”), которая преобразует значение числовой переменной curСтоимость из денежного типа в строковый. При этом в дробной части сохраняет два разряда для копеек.
Для вывода второго предложения результата в начало второй строки используется константа vbCrLf.
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!