1. На первом шаге решения задачи предоставим математическую формулировку:
Пусть – цена (price), – количество (number), – сумма покупки (amount), – сумма скидки (discount), – сумма со скидкой (sum). Тогда . Если покупатель приобрел больше 3 окон , то ему предоставляется скидка в размере 5%: . Если покупатель приобрел больше 2 дверей , то ему предоставляется скидка в размере 10%: . Если условие не выполняется, то скидка не предоставляется: . Дополнительно покупатель может получить скидку в размере 1% или 2% при наличия карточки покупателя, соответственно в будний: или исходный день: .
2. На втором шаге решения задачи создадим блок-схему
3. На третьем шаге решения задачи создадим форму (визуальный этап). Каждому объекту формы предоставим свойства и значение.
Объект
Свойство
Значение
Форма (Form)
(Name)
frm_example
Backcolor
белый
Caption
Пример
Borderstyle
1 – Fixed Single
Этикетка (Label)
(Name)
lbl_price
Autosize
True
Backstyle
0 – Transparent
Caption
Цена:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Цена
Этикетка (Label)
(Name)
lbl_number
Autosize
True
Backstyle
0 – Transparent
Caption
Количество:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Количество
Этикетка (Label)
(Name)
lbl_write_number
Aligment
1 – Right Justify
Backcolor
белый
Borderstyle
1 – Fixed Single
Caption
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Количество товара
Этикетка (Label)
(Name)
lbl_amount
Aligment
0 – Left Justify
Backstyle
0 – Transparent
Caption
Сумма покупки:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Сумма покупки
Этикетка (Label)
(Name)
lbl_discount
Aligment
0 – Left Justify
Backstyle
0 – Transparent
Caption
Сумма скидки:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Сумма скидки
Этикетка (Label)
(Name)
lbl_sum
Aligment
0 – Left Justify
Backstyle
0 – Transparent
Caption
Сумма со скидкой:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Сумма со скидкой
Текстовое поле
(Textbox)
(Name)
txt_price
Aligment
1 – Right Justify
Backcolor
белый
Font
Tahoma, 12
Forecolor
зеленый
Text
Tooltiptext
Введите цену
Горизонтальная линейка
(Hscrollbar)
(Name)
hsb_number
Largechange
Max
Список
(Combobox)
(Name)
cmb_day
Backcolor
белый
Font
Tahoma, 12
Forecolor
зеленый
List
будничный день
выходной день
Text
Tooltiptext
Выберите день
Фрейм (Frame)
(Name)
fr_article
Backcolor
белый
Caption
Товар:
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Выберите товар
Переключатель (Optionbutton)
(Name)
opt_window
Backcolor
белый
Caption
Окно
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Окно
Переключатель (Optionbutton)
(Name)
opt_door
Backcolor
белый
Caption
Двери
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Двери
Флажок (Checkbox)
(Name)
chk_card
Backcolor
белый
Caption
Карточка покупателя
Font
Tahoma, 12
Forecolor
зеленый
Tooltiptext
Выбрать, если есть
Командная кнопка
(Commandbutton)
(Name)
cmd_calculation
Backcolor
белый
Caption
Расчеты
Font
Tahoma, 12
Style
1 – Graphical
Tooltiptext
Нажмите для расчетов
Командная кнопка
(Commandbutton)
(Name)
cmd_flush
Backcolor
белый
Caption
Очищение
Font
Tahoma, 12
Style
1 – Graphical
Tooltiptext
Нажмите для очищения
Командная кнопка
(Commandbutton)
(Name)
cmd_calculation
Backcolor
белый
Caption
Выход
Font
Tahoma, 12
Style
1 – Graphical
Tooltiptext
Нажмите для выхода из программы
4. На четвертом шаге решения задачи создадим программный код.
‘Требование обязательного объявления переменных
Option Explicit
‘Объявление переменных
Dim p, a, d, s As Currency, n As Byte
‘Программная кнопка Расчеты
Private Sub cmd_calculation_Click()
‘Переменной присваивается значения текстового поля
p = Val(txt_price.Text)
‘Переменной присваивается Значение горизонтальной линейки прокрутки
n = hsb_number.Value
‘Проверка (все данные введены)
‘Если хотя бы одно поле не заполнено
If txt_price.Text = "" Or hsb_number.Value = 0 Or (opt_window.Value = False And opt_door.Value = False) Or cmb_day.Text = "" Then
‘Окно с сообщением об ошибке
Msgbox "Ошибка! Заполните все данные!", vbokonly + vbcritical, "Ошибка!"
‘Иначе (начало расчетов)
Else
‘Вычисление суммы покупки (цену умножить на количество)
Для запуска программы на выполнение используется команда меню Run - Start.
В случае выявления ошибок можно завершить выполнение программы командой Run - End, внести необходимые исправления в программу.
5. На пятом шаге решения задачи необходимо выполнить действия по сохранению программы.
Чтобы сохранить проект на носителях нужно выполнить команду
File - Save Project или воспользоваться инструментом Save Project.
При сохранении проекта на диск записывается такие файлы:
ü файл проекта (файл с расширением VBP), в котором содержится информация о проекте;
ü файлы форм (файл с расширением FRM) с описанием форм.
Чтобы файл программы был готов к выполнению, используется команда меню File - Make <имя проекта>. exe.
Для печати программы нужно выполнить команду File - Print, в окне диалога команды выбрать опцию Current Project (текущий проект), для печати формы включить флажок Form Image, кода - флажок Code.
Варианты заданий к теме «Программирование циклических и разветвленных вычислительных процессов»
Задача
Разработать программу по индивидуальному варианту. При разработке программы нужно создать форму, программный код, проверить действие программы. Значение переменной Х выбирать с помощью линейки.
Дальше необходимо сохранить программу, напечатать форму и код программы. Отчет о работе должен содержать: распечатанную форму программы; распечатанный код программы.
Вариант №1
Вариант №2
Вариант №3
Вариант №4
Вариант №5
Вариант №6
Вариант №7
Варіиант №8
Вариант №9
Вариант №10
Вариант №11
Вариант №12
Вариант №13
Вариант №14
Вариант №15
Вариант №16
3. Контрольные вопросы за модулем «Технологии программирования»
1. Что такое алгоритм? Какие бывают типы алгоритмов.
2. Свойства алгоритма.
3. Какие бывают способы записи алгоритма.
4. Для чего предназначен язык Microsoft Visual Basic.
5. Из каких этапов состоит процесс разработки программ в среде Visual Basic.
6. Какие элементы управления используются для создания визуальной формы.
7. Что такое процедура, программный код?
8. Как от формы перейти к созданию процедуры?
9. Для чего предназначен условный оператор If? Его общая форма.
10. Для чего предназначен оператор For .. Next? Его общая форма.