Явное и неявное объявление переменных — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Явное и неявное объявление переменных

2021-04-18 124
Явное и неявное объявление переменных 0.00 из 5.00 0 оценок
Заказать работу

Каждая переменная, используемая в коде программы, имеет определенный тип. Этот тип может быть указан в операторе 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.029 с.