- •Введение
- •1. Правила оформления и сдачи курсовой работы
- •Структура пояснительной записки
- •Оформление программной части задания
- •Оформление пояснительной части задания
- •Создание иллюстраций
- •Процедура защиты курсовой работы
- •2. Лабораторные работы
- •Типы и значения переменных
- •Работа с числовыми данными
- •Работа с календарными датами
- •Работа со строками
- •Работа с числовыми данными
- •Работа с числовыми данными
- •Работа с текстовыми данными
- •Округление числовых данных
- •Область действия переменных
- •Вычисление выражений
- •Приоритеты операций
- •Расчёт бака
- •Опасные даты
- •Расчёт выгодности сделки
- •Формирование списка сотрудников
- •Работа с датами
- •Проверка условий
- •Построение треугольника из частей отрезка
- •Построение треугольника из заданных отрезков
- •Моделирование бросания игральных костей
- •Преобразование единиц измерения
- •Угадывание чисел
- •Рисование окружностей
- •Рисование треугольников
- •Рисование графика функции sin
- •Рисование звёздного неба
- •Моделирование движения спутника по орбите
- •Изменение цвета текстового поля
- •Вычисление значения функции
- •Рост населения
- •Сумма расходящегося числового ряда
- •Сумма сходящегося числового ряда
- •Моделирование броуновского движения
- •Моделирование абсолютно упругого удара
- •Общие процедуры
- •Рисование домика
- •Рисование окружностей
- •Инверсия цепочки символов
- •Массивы
- •Ввод-вывод массива
- •Поиск элемента максимальной длины
- •Сложные условия
- •Массив объектов управления
- •Игра «Угадайка»
- •Формирование расписания
- •Библиографический список
- •Приложение 1 встроенные функции visual basic
- •1. Математические функции
- •2. Функции обработки строк
- •3. Функции обработки календарных дат и времени
- •4. Финансовые функции
- •5. Функции работы с массивами
- •Приложение 2 события в приложениях vb
- •Приложение 3 графические методы стандартных объектов языка
- •Задание цвета в операторах рисования графических примитивов
- •Приложение 4 префиксы в именах стандартных объектов языка
- •Оглавление
Общие процедуры
Общими называются процедуры, которые вызываются неоднократно из нескольких мест программы и/или используются совместно несколькими объектами.
Рисование домика
Задание
Разработать программу рисования домика.
Добавить в проект приложения стандартный модуль и разместить в нём следующие процедуры.
'Процедура рисования стены (один прямоугольник)
Sub Wall(x1 as Single, x2 as Single, y1 as Single, y2 as Single, c as Long)
Line(x1, y1)-(x2, y2), c, b 'Прямоугольник
End sub
'Процедура рисования крыши (фигура из пяти отрезков)
Sub Roof(x1 as Single, x2 as Single, x3 as Single, y1 as Single, y2 as Single, c as Long)
Line(x1, y1)-(x3, y1), c
Line((x2-x1)/2, y2)-(x3-(x2-x1)/2, y2), c
Line(x1, y1)-((x2-x1)/2, y2), c
Line(x3, y1)-(x3-(x2-x1)/2, y2), c
Line(x2, y1)-((x2-x1)/2, y2), c
End Sub
В окне внешнего вида формы расположить командную кнопку, а в окне кода формы сформировать процедуру-событие на щелчок по этой кнопке, в результате которого будет вызываться процедура рисования домика (House).
Sub cmdGo_Click()
Call House(0, 10, 20, 0, 5, 10) ‘Вызов процедуры рисования домика
End Sub
Тело процедуры (House) разместить, как и процедуры (Wall) и крыши (Roof), в стандартном модуле.
'Процедура рисования домика
Sub House(x1 as Single, x2 as Single, x3 as Single, y1 as Single, y2 as Single, y3 as Single)
Call Wall(x1, x2, y1, y2, vbRed) 'Рисование одной стены
Call Wall(x2, x3, y1, y2, vbRed) 'Другой стены
Call Roof(x1, x2, x3, y1, y2, y3, vbGreen) 'Рисование крыши
End Sub
Вопросы к заданию
Добиться работоспособности программы для рисования единственного домика. В отчёте привести иллюстрацию результата работы программы и сделанные изменения и/или дополнения кода.
Дополнить программу возможностью рисования нескольких домиков. Для этого следует каждый раз вызывать процедуру рисования домика с различными входными параметрами.
На форме создать ещё одну кнопку и добавить в процедуру её нажатия следующий код.
Sub cmdGoMulty_Click()
Scale(-5, 12)-(22, -2)
'Рисование нескольких домиков
Call House(0, 2, 5, 0, 2, 3)
Call House(6, 10, 13, 0, 3, 5)
Call House(14, 17, 21, 0, 2, 4)
Call House(2, 4, 6, 4, 8, 10)
Call House(8, 14, 20, 6, 9, 11)
End Sub
Добиться работоспособности процедуры (числа в вызовах процедур исправлять нельзя). В отчёте описать сделанные изменения.
Добавить в программу возможность увеличения или уменьшения рисунка с несколькими домиками при нажатии соответствующих кнопок. В отчёте описать смысл требуемых изменений и проиллюстрировать работу функции.
Рисование окружностей
Задание
Требуется нарисовать концентрические (с одним и тем же центром) окружности уменьшающегося радиуса. Радиус каждой следующей окружности равен 9/10 радиуса предыдущей. Рисование прекращается, когда радиус становится равным минимальному значению Rmin = 1.
В модуле кода формы написать следующее.
Sub Go_Click()
Scale(-10, 10)-(10, -10)
R = 8
Rmin = 1
Call ConcentricCircles(R, Rmin)
End Sub
В стандартном модуле написать следующее.
Sub ConcentricCircles(R as Single, Rmin as Single)
If R > Rmin Then
Circle(0, 0), R
R = 0.9 * R
Call ConcentricCircles(R, Rmin) 'Рекурсивный вызов
End If
End Sub
Вопросы к заданию
Разработать интерфейс пользователя. В отчёте привести иллюстрацию интерфейса и описать назначение всех используемых объектов. Добиться работоспособности программы.
Задать случайное изменение цвета каждой рисуемой окружности. В отчёте привести соответствующий фрагмент текста программы.
Увеличить число выводимых окружностей в рекурсивной программе до получения сообщения об ошибке переполнения стека (Out of stack space). В отчёте указать способ увеличения числа окружностей, привести соответствующий фрагмент текста программы и иллюстрацию сообщения об ошибке.
Преобразовать программу, заменив рекурсию на цикл с условием. Привести в отчёте алгоритм цикла.