Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

IV этап – Запуск программы 2 страница



Свойства контрольных индикаторов аналогичны, за исключением свойства Value, для которого возможными установками являются: 0 (не выбрано), 1 (выбрано), 2 (недоступно). При установке 2 контрольный индикатор и отметка обесцвечиваются.

Флажок обладает уникальным свойство TripleState, позволяющим проивзодить выбор из трех альтернатив. Допустимыми значениями свойства TripleState являются:

- False (выбор из двух альтернатив True и False, т.е. флажок может находиться только в двух состояниях – установлен и сброшен);

- True (выбор из трех альтернатив True, False, Null, т.е. флажок может находиться в трех состояниях – установлен, сброшен и нейтрален).

Рамки. Элемент управления Frame (Рамка) предназначена для объединения элементов управления в группы. С функциональной точки зрения рамки необходимы в том случае, если на форме надо установить более одного набора кнопок-переключателей. Внутри рамки набор кнопок-переключателей работает как группа, независимо от других кнопок. Следует помнить, что сначала на форму добавляется рамка, а после этого внутрь рамки добавляются кнопки-переключатели. Рамки также могут быть использованы для улучшения внешнего вида окна. Свойство рамки Caption хранит текст, размещенный в левом верхнем углу рамки.

Пример 1.

Постановка задачи. Разработать приложение нахождения минимального или максимального значения среди трех чисел, заданных формульными зависимостями и среднеарифметического среди этих же трех чисел. Исходные данные вводятся в два поля. Результат должен отображаться после нажатия кнопки <ОК>. При выборе первого переключателя после нажатия кнопки ОК будет находиться минимальное число среди трех чисел, а при выборе второго – максимальное среди этих же трех чисел. С помощью контрольного индикатора (флажка) будет вычисляться среднеарифметическое среди полученных трех чисел. Программа должна заканчивать работу после нажатия кнопки <END>. Окно программы должно иметь вид, показанный на рисунке 37.

Рисунок 37 – Диалоговое окно программы, вычисляющее минимальное

(максимальное) число среди трех полученных чисел

Технология выполнения задания:

1 Исходные данные:

a, b Î Z

а = 2; b = 4

Результат: Min (Max) Î Z

2 Конструирование проекта.

Процесс программирования приложения Рамки и переключатели предусмотрен тремя этапами, как показано в таблице 32.

Таблица 32 - Этапы программирования

Этапы программирования Число объектов
1. Создание пользовательского интерфейса 18 объектов
2. Установка свойств объектов 18 объектов
3. Составление программного кода 2 объекта

Создать форму с семью полями ввода, семью надписями, командной кнопкой, рамкой, внутри которой, как в контейнере, расположите два переключателя, с одним контрольным индикатором (флажком).

При помощи окна Properties установить значения свойств Name и Caption полей элементов управления следующим образом, как показано в таблице 33.

Таблица 33

Элемент управления Свойство Значение Примечание
Поле ввода Name TextBox1 Число а
Поле ввода Name TextBox2 Число b
Поле ввода Name TextBox3 Число у1
Поле ввода Name TextBox4 Число у2
Поле ввода Name TextBox5 Число у3
Поле ввода Name TextBox6 Результат
Поле ввода Name TextBox7 Результат
Надпись Caption Label1 Исходные данные
Надпись Caption Label2 а
Надпись Caption Label3 b
Надпись Caption Label4 Y1
Надпись Caption Label5 Y2
Надпись Caption Label6 Y3
Надпись Caption Label7 Результат
Командная кнопка Name Caption CommandButton1 ОК
Командная кнопка Name Caption CommandButton2 End
Рамка Caption Frame Операция
Переключатель Name Caption OptionButton1 Минимум
Переключатель Name Caption OptionButton2 Максимум
Контрольный индикатор   CheckBox1 Вычислить среднеарифметическое среди 3-х чисел

3 В модуле формы набрать следующий код, как изображено на рисунке 38.

Рисунок 38 – Программный код

4 Запустить приложение.

Пример 2. Расчет ренты.

Постановка задачи. Создать проект для решения следующего типа задач по расчету ренты. Выкупается страховка, по которой выплачивается по 500 р. в конце каждого месяца в течение 20 последующих лет. Стоимость ренты составляет 60000 р. и выплачиваемые деньги принесут 8% годовых. Необходимо определить, будет ли выгодным инвестирование капитала.

Рисунок 39 – Окно «Рента». Флажок установлен

Таблица 34

Элемент управления Свойство Значение
Форма Caption Рента
Надпись Caption Стоимость ренты
Поле ввода Name TextBox1
Надпись Caption Процентная ставка, годовых
Поле ввода Name TextBox2
Надпись Caption Разовая выплата
Поле ввода Name TextBox3
Надпись Caption Срок, лет
Поле ввода Name TextBox4
Надпись Caption Настоящий объем вклада
Поле ввода Name TextBox5
Кнопка Name Caption CommandButton1 ОК
Флажок Name Caption CheckBox1 Выплата в конце каждого месяца

Технология выполнения задания:

1 Создать форму, на которой расположить пять надписей и пять полей ввода, одну кнопку и флажок, как показано на рисунке 39.

2 При помощи окна Properties установить значения свойств Name и Caption элементов управления следующим образом, как показано в таблице 34.

3 Настоящий объем вклада находится финансовой функцией PV: PV (0.08/12, 12*20, 500,, 0), которая возвращает -59 777,15 р.

Результат получает отрицательный, поскольку он представляет сумму, которую необходимо выплатить. Настоящий объем вклада (59777,15 р.) меньше, чем запрашиваемая цена (60000 р.). Следовательно, можно сделать вывод, что это не самый лучший способ инвестирования денег.

Если же выплаты производились в начале каждого периода, то настоящий объем PV (0.08/12, 12*20, 500,, 1) возвращает 60 175,66 р. Это немного больше запрашиваемой цены и, поэтому, стоит подумать о предложении.

4 В модуле формы набрать следующий код, изображенный на рисунке 40.

Рисунок 40 – Программный код

Примечание. Если флажок установлен, то в заголовке окна появится текст Рента: выбрана выплата в конце каждого месяца, а если сброшен, то Рента: выбрана выплата в начале каждого месяца. Таким образом, флажок в данном проекте не только фиксирует тот или иной выбор, но и управляет заголовком окна.

5 Запустить проект.

Лабораторная работа № 10

Разработка пользовательского приложения с помощью объектов: кнопки-переключателя, контрольного индикатора, рамки

Цель: приобретение навыков разработки проекта VBA с помощью объектов Формы - кнопка-переключатель, контрольный индикатор, рамка. Индивидуальные варианты лабораторной работы представлены в таблице 35 (2 часа).

Таблица 35

№ В Варианты индивидуальных заданий
Разработать проект VBA с помощью объектов: кнопки-переключателя, контрольного индикатора, рамки
  ; x=-1.23
  Даны действительные числа x, y, z. Вычислить: ;  
  Даны действительные числа x, y, z. Вычислить:
  ; b=0.251, x=0.004
  ; x=1.14
  ; где
  ; x=0.15394

Продолжение таблицы 35

  ; a=1.618, b=0.992, x=0.018
  ; y=0.1465, x=2.3864
  ; a=0.647, b=1.546, x=1.667
  ; a=0.361, x=0.852
  ; c=0.983, x=0.89
  ; a=0.185, b=0.256, x=0.246
  ; x=0.29
  ; a=0.357, b=0.128, x=0.634
  ; x=0.324, a=0.421, b=0.722

Продолжение таблицы 35

  ; где х = 0.256, b = 0.147
  ; где а = 0.504, х = 0.112
  ; где а = 0.125, b = 1.320, x = 1.257
  ; где а = 0.849, х = 0.560

3.4 Объекты формы в VBA: Полоса прокрутки и Счетчик

Элемент управления ScrollBar (Полоса прокрутки) предлагает установить числовое значение, основываясь на положение ползунка, причем этот элемент может устанавливать только целые значения. Полоса прокрутки часто находится в текстовых полях, но ее можно добавлять и в другие места. Как правило, она может быть присоединена к краям окон, например, при выводе на экран части растрового рисунка.

Основным событием элемента управления Полоса прокрутки является событие Change, генерируемое при изменении текущего значения полосы. В таблице 36 перечислены основные свойства, которыми может обладать объект «Полоса прокрутки».

Таблица 36 - Основные свойства полосы прокрутки

Свойство Описание
Value Возвращает или устанавливает текущее значение ползунка на полосе прокрутки
Min Минимальное значение полосы прокрутки
Max Максимальное значение полосы прокрутки
SmallChange Устанавливает шаг изменения значения при щелчке по одной из стрелок полосы прокрутки. Это свойство определяет величину, на которую изменится Value при щелчке по стрелке на конце линейки прокрутки.

Продолжение таблицы 36

LargeChange Устанавливает шаг изменения при щелчке между ползунком и одной из стрелок полосы прокрутки
Orientation Устанавливает ориентацию полосы прокрутки. Допустимые значения: - fmOrientationAuto или -1 (ориентация зависит от размера элемента управления. Используется по умолчанию); - fmOrientationVertical или 0 (вертикальное расположение); - fmOrientationHorizontal или 1 (горизонтальное расположение)

Элемент управления SpinButton (Счетчик) можно рассматривать, как полосу прокрутки без ползунка, и он выполняет те же функции, что и полоса прокрутки. Он имеет те же свойства Value, Min, Max, SmallChange, что и полоса прокрутки.

Пример 1.

Постановка задачи. Разработать программу вычисления значения выражения, состоящее из вычисления произведения конечного ряда . Вводить пользователем с клавиатуры в одно (два) поле с именем «Исходное число А» («Исходное число В» и т.д.) при установке начального и конечного значения параметра цикла с помощью счетчика и полосы прокрутки, с отображением результата в поле «Результат».

Рисунок 41 – Окно программы «Вычисление значения произведения»

Результат должен отображаться после нажатия кнопки <ОК>. Программа должна заканчивать работу после нажатия кнопки <END>. Окно программы должно иметь вид, показанный на рисунке 41.

Технология выполнения задания:

1 Исходные данные:

i, k Î Z

a Î R, a = 2,71

Результат: P Î R.

2 Процесс программирования приложенияВычисление значения произведения предусмотрен тремя этапами, как показано в таблице 37.

Таблица 37 - Этапы программирования

Этапы программирования Число объектов
1. Создание пользовательского интерфейса 18 объектов
2. Установка свойств объектов 12 объектов
3. Составление программного кода 2 объекта

3 При помощи окна Properties установить значения свойств Name и Caption элементов управления, как указано в таблице 38.

Таблица 38 – Свойства элементов управления

Элемент управления Свойство Значение
Форма Caption Вычисление значения произведения
Надпись Caption Исходное число А
Поле ввода Name TextBox1
Надпись Caption Начальное значение i
Поле ввода Name TextBox2
Счетчик Name SpinButton1
Надпись Caption Конечное значение i
Поле ввода Name TextBox3
Счетчик Name SpinButton2
Надпись Caption Начальное значение k
Поле ввода Name TextBox4
Полоса прокрутки Name ScrollBar1
Надпись Caption Конечное значение k
Поле ввода Name TextBox5

Продолжение таблицы 38

Полоса прокрутки Name ScrollBar2
Надпись Caption Результат
Поле ввода Name TextBox6
Кнопка ОК CommandButton1
Кнопка END CommandButton2

4 В модуле формы набрать следующий код, изображенный на рисунках 42а, 42б, 42в.

Рисунок 42а – Программный код кнопки «ОК»

Рисунок 42б – Программный код кнопки «End», «Счетчика1» («Счетчика2»),

«Полосы прокрутки1», («Полосы прокрутки2»), инициализации формы

Обратить внимание на две группы процедур:

1 ScrollBar1_Change () (ScrollBar2_Change ()), SpinButton1_Change () (SpinButton2_Change ()).

2 TextBox2_Change () (TextBox3_Change (), TextBox4_Change (), TextBox5_Change ()).

Первая из них обрабатывает событие Change счетчика (полосы прокрутки), при изменении значения которого его текущее значение отображается в поле ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i.

Пользователь может ввести значение в поле ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i с клавиатуры. В этом случае, текущее значение счетчика должно быть автоматически установлено тому значению, которое введено в это поле ввода. Как раз это и делает вторая группа процедур, обрабатывая событие Change поля ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i. Таким образом, обе процедуры синхронизируют работу поля ввода и счетчика.

Рисунок 42в – Программный код процедур полей ввода «Начальное значение i»,

« Конечное значение i», «Начальное значение k», «Конечное значение k»

Пример 2. Определение размера платежей с целью накопления искомой суммы.

Постановка задачи. Предположим, что за 18 лет необходимо иметь в распоряжении 50000 р. С этой целью решено откладывать постоянную сумму каждый месяц. Если предположить, что удастся обеспечить 6% годовых, сколько денег надо откладывать каждый месяц?

Технология выполнения задания:

1 Создать форму, на которой расположить четыре надписи, четыре поля ввода, одну кнопку, счетчик, как показано на рисунке 43.

2 При помощи окна Properties установить значения свойств Name и Caption элементов управления следующим образом, как показано в таблице 39.

Рисунок 43 – Диалоговое окно «Размер платежей»

Таблица 39 – Свойства элементов управления

Элемент управления Свойство Значение
Форма Caption Размер платежей
Надпись Caption Искомая сумма
Поле ввода Name TextBox1
Надпись Caption Процентная ставка, годовых
Поле ввода Name TextBox2
Надпись Caption Срок, лет
Поле ввода Name TextBox3
Надпись Caption Размер ежемесячных выплат
Поле ввода Name TextBox4
Кнопка Name Caption CommandButton1 ОК
Счетчик Name SpinButton1

3 Определение размера платежей с целью накопления искомой суммы находится при помощи финансовой функции Pmt.

Pmt (0.06/12, 18*12, 0, 50000), которая возвращает -129,08 р.

Таким образом, каждый месяц надо откладывать по 129,08 р.

4 В модуле формы набрать следующий код, показанный на рисунке 44.

Примечание. Обратить внимание на две процедуры: SpinButton1_Change и TextBox2_Change. Первая из них обрабатывает событие Change счетчика, при изменении значения которого его текущее значение отображается в поле ввода Процентная ставка, годовых.

Рисунок 44 – Программный код

Можно ввести значение в поле ввода Процентная ставка, годовых с клавиатуры. В этом случае, текущее значение счетчика должно быть автоматически установлено тому значению, которое введено в это поле ввода. Как раз это и делает вторая процедура, обрабатывая событие Change поля ввода Процентная ставка, годовых.

Таким образом, обе процедуры синхронизируют работу поля ввода и счетчика.

5 Запустить проект.

Лабораторная работа № 11

Разработка пользовательского приложения с помощью объектов: полоса прокрутки, счетчик

Цель: приобретение навыков разработки пользовательского приложения с помощью объектов формы - полоса прокрутки, счетчик. Индивидуальные варианты лабораторной работы № 11 выполняются в соответствии с индивидуальными вариантами лабораторной работы № 4 (2 часа).

3.5 Объекты формы в VBA: Список и Поле со списком

Элемент управления ListBox (Список) предназначен для отображения и хранения списка значений. В списке пользователь может выбрать одно или несколько значений, которые в последующем используются в тексте программы. Обычно выбор элемента из списка производится щелчком по элементу. Двойной щелчок по элементу применяется с целью выполнения каких-либо действий в программе, связанных с этим элементов. В таблице 40 приведены основные свойства объекта «Список».

Таблица 40 - Свойства объекта «Список»

Свойство Описание
ListIndex Возвращает номер выбранного элемента списка. Нумерация элементов списка начинается с нуля. Если ни один элемент списка не выбран, то возвращает -1
ListCount Возвращает число элементов списка
TopIndex Возвращает элемент списка с наибольшим номером
ColumnCount Устанавливает число столбцов в списке
TextColumn Устанавливает столбец в списке, элементы из которого возвращаются в качестве значения свойства Text
Text Возвращает выбранной в списке элемент
List Возвращает элемент списка, стоящий на пересечении указанной строки и столбца. Синтаксис: List (row, column) Row – строка Column - столбец
RowSource Устанавливает диапазон, содержащий элементы списка
ControlSource Устанавливает диапазон (ячейку), куда возвращается выбранный элемент из списка
MultiSelect Устанавливает способ выбора элементов списка. Допустимые значения: fmMultiSelectSingle или 0 (выбор только одного элемента); fmMultiSelectMulti или 1 (разрешен выбор нескольких элементов, выбор осуществляется либо щелчком, либо нажатием клавиши <Пробел>); fmMultiSelectExtended или 2 (разрешено использование клавиши <Shift> при выборе ряда последовательных элементов списка)
Selected Логическое свойство, которое возвращает значение True, если элемент списка выбран, и False – в противном случае. Используется для определения выбранного элемента, когда значение свойства MultiSelect установлено равным fmMultiSelectMulti или fmMultiSelectExtended
ColumnWidths Устанавливает ширину столбцов списка. Синтаксис: ColumnWidths = String где String – строка, устанавливающая ширину столбцов в пунктах. В следующем примере устанавливается ширина каждого из трех столбцов списка: With ListBox1 .ColumnCount = 3 .ColumnWidths = “20:30:30” End With

Продолжение таблицы 40

ColumnHeads Логическое свойство, определяющее, выводить ил в списке заголовки столбцов
ListStyle Устанавливает способ выделения элементов. Допустимые значения: fmListStylePlain или 0 (выбранный элемент из списка выделяется цветом); fmListStyleOption или 1 (перед каждым элементом в списке располагается флажок, и выбор элемента из списка соответствует установке флажка)
MathEntry Выводит первый подходящий элемент из списка при выборе его имени с клавиатуры. Допустимые значения: fmMathEntryFirstLetter или 0 (выводит подходящий элемент по набранной первой букве. В этом случае, предпочтительно, чтобы элементы списка были упорядочены в алфавитном порядке); fmMathEntryComplete или 1 (выводит подходящий элемент по полному набранному имени); fmMathEntryNone или 2 (режим вывода подходящего элемента в списке отключен)
BoundColumn Устанавливает данные, возвращаемые свойством Value. Допустимые значения: 0 (свойством Value возвращается индекс выбранной строки, т.е. в этом случае оно действует как свойство ListIndex); От 1 до количества столбцов в списке (свойством Value возвращается элемент из выбранной строки, стоящий в столбце, заданным значением свойства BoundColumn)

3.5.1 Заполнение списка и удаление его элементов

Для поэлементного заполнения списка и удаления из него выбранного элемента применяются методы Clear, RemoveItem и AddItem.

Метод Clear удаляет все элементы из списка.

Метод RemoveItem удаляет из списка элемент с указанным номером.

Синтаксис:

RemoveItem (index)

где

index – номер удаляемого элемента из списка.

Примечание. Этот метод не работает, если список заполнен элементами из диапазона при помощи свойства RowSource.





Дата публикования: 2014-11-03; Прочитано: 494 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.018 с)...