- •Содержание
- •Лабораторна робота № 1. Оболонка системи програмування visual basic. Заняття 1
- •1. Запустите Visual Basic и произведите необходимую настройку.
- •2. Задайте различные свойства формы:
- •3. Запустите программу на выполнение.
- •17. Запустите программу на выполнение и проверьте ее работу.
- •20. Сохраните проект на рабочем диске.
- •Лабораторна робота № 1.Этапи розробки windows-додатків в середовищі програмування visual basic (на прикладі створення простого додатку). Заняття 2.
- •1. Постановка задачи
- •3. Напишите программные коды
- •4. Отладьте6 программу
- •Завдання до самостійної роботи № 1 (в,лс,вс).
- •I. Содержательная постановка задачи.
- •II. Математическая постановка задачи.
- •III. Разработка пользовательского интерфейса.
- •Лабораторна робота № 2. Дані в visual basic. Типи даних.
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота № 3. Область видимості змінної.
- •ИмяФормы. ИмяПеременной
- •Лабораторна робота № 4. Арифметичні вырази й вбудовані функції visual basic
- •Лабораторная работа № 5. Введення-виведення даних. Функція inputbox и msgbox. Вікно й функція inputbox.
- •Лабораторна робота №6. Проектування додатків vb6, що містять лінійні алгоритмічні структури
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота № 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 1
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 1. Цикли з лічильником
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 2. Цикли з умовою
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 2
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 3. Сортування елементів масиву. Обмін значеннями.
- •Ilорядок действий
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу(вс,лс)
- •Лабораторна робота №11. Проектування додатків vb6, у яких дані організовані у вигляді двовимірних масивів
- •Завдання на самостійну роботу(в, вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Завдання на самостійну роботу(вс,лс)
- •Лабораторна робота №12. Проектування додатків vb6, у яких дані організовані у вигляді структур. Користувальницький тип даних.
- •VbExclamation, "Столько друзей не бывает"
- •VbExclamation, "Поиск не дал результатов"
- •VbExclamation, "Поиск не дал результатов"
- •Мid(Друзья(j).BirthDay, 4, 2) завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №13. Модульне програмування. Заняття 1.
- •Завдання на самостійну (в) та практичну роботу (вс,лс) завдання с13.4
- •Лабораторна робота №13. Модульне програмування. Заняття 2
- •InputВох("Задайте любой вопрос", "????")
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Лабораторна робота № 14. Налагодження програм
- •Лабораторна робота № 15. Обробка символьної інформації.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Лс,Вс).
- •Лабораторна робота № 16. Проектування додатків vb6, у яких дані організовані у вигляді файлів на магнітних носіях.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Вс, Лс)
- •Лабораторна робота № 17. Графіка
Контрольний опрос на практичному занятті (Вс, Лс)
Контрольные вопросы:
Какими способами можно открыть текстовый файл? Как закрыть текстовый и любой другой открытый файл?
Как записываются данные в открытый для записи текстовый файл? В чем разница между операторами Write и Print?
Как читаются данные из открытого для чтения текстового файла? Чем отличаются друг от друга операторы Input и Line Input? При помощи какой функции можно прочитать из файла заданное число символов? Как прочитать все символы файла?
Что такое пользовательский тип данных и как используется это понятие при работе с файлами произвольного доступа (raf)?
С помощью каких операторов из файла raf читаются записи и в файл raf пишутся новые записи?
С какой целью определяется и используется индекс при работе с файлом raf?
Как можно применить элемент управления Common Dialog для загрузки содержимого текстового файла в текстовое поле? Как с помощью того же элемента управления сохранить отредактированный текст в текстовом файле?
Как можно применить элемент управления Common Dialog для загрузки содержимого файла rtf в поле Rich Textbox? Как с помощью того же элемента управления сохранить отредактированный текст в файле rtf?
Как можно применить элемент управления Common Dialog для изменения значений параметров шрифта и для изменения цвета текста в окне Textbox (или выделенного фрагмента текста в окне Rich Textbox)?
Лабораторна робота № 17. Графіка
ЗАВДАННЯ 17.1. Постановка задачи: ВЫБРАТЬ ОБЕКТЫ ДЛЯ ВЫВОДА ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ. ПРОДЕМОНСТРИРОВАТЬ РАЗМЕЩЕНИЕ ТОЧКИ (МЕТОД Pset) В РАЗНЫХ СИСТЕМАХ КООРДИНАТ (МЕТОД Scale).
Порядок действий
1. Создайте новый проект. Разместите на форме: 4 объекта PictureBox14; 4 объекта CommandButton, при нажатии которых будет выполняться: 1) – установка системы координат; 2) — построение графических объектов (точек); 3) – очистка PictureBox; 4) — корректный выход.
Рисунок 17.1. Форма на которой размещены координатные оси
1) установка системы координат. Для установки системы координат используйте метод Scale:
Picture2.Scale (-300, 300)-(300, -300) ‘
Picture3.Scale (300, 0)-(0, 300) ‘
Picture4.Scale (-5, 300)-(300, -5) ‘
2) построение графических объектов (точек).
Для вывода точек введите программный код (красным цветом отметить начало координат):
DrawWidth15 = 10
PSet (100, 200)
Picture1.DrawWidth = 10
Picture1.PSet (100, 200)
Picture1.PSet (0, 0), vbRed
Picture2.DrawWidth = 10
Picture2.PSet (100, 200)
Picture2.PSet (0, 0), vbRed
Picture3.DrawWidth = 10
Picture3.PSet (100, 200)
Picture3.PSet (0, 0), vbRed
Picture4.DrawWidth = 10
Picture4.PSet (100, 200)
Picture4.PSet (0, 0), vbRed
3) очистка PictureBox
Picture1.BackColor = -2147483633
Picture2.BackColor = &H8000000F
Picture3.DrawWidth = 10
Picture3.PSet (100, 200), -2147483633
Picture4.BackColor = -2147483633
ЗАВДАННЯ 17.2. Постановка задачи. ПОСТРОИТЬ ГРАФИЧЕСКИЕ ПРИМИТИВЫ — ПРЯМУЮ, ПРЯМОУГОЛЬНИК, КРУГ, ОВАЛ, СЕКТОР, КРУГ, УСТАНОВИВ ДЛЯ НИХ РАЗЛИЧНЫЕ ХАРАКТЕРИСТИКИ (ЦВЕТ, ТОЛЩИНУ ЛИНИИ, ФОН, СПОСОБ ЗАЛИВКИ).
Порядок действий
Добавьте в проект новую форму. Разместите на форме 4 объекта PictureBox, 6 объектов CommandButton, при нажатии которых будет выполняться построение графических объектов, их местоположение, очистка PictureBox, корректный выход.
Рисунок 17.2 – Форма Задания 17.2
Очистка PictureBox (кнопка «Очистка экрана»)
Private Sub Command6_Click()
Picture1.Cls
‘Picture1.BackColor = -2147483633
End Sub
Корректный выход (кнопка «Выход»).
Private Sub Command3_Click()
Form3.Show
End Sub
Установка системы координат (кнопка «Установка шкалы»):
Private Sub Command2_Click()
Picture1.DrawWidth = 3
Picture1.Line (200, 200)-(500, 800), vbMagenta, B
'Picture1.DrawWidth = 1
'Picture1.Line (200, -200)-(550, -1000),, B
Picture1.FillStyle = 0
Picture1.FillColor = vbGreen
Picture1.Line (-2000, -2000)-(-1900, 2000),, B 'Почему прямоугольник зеленый?
Picture1.FillStyle = 1
'Трасса Е95
a1 = -1900 'min X левая граница
b1 = 200 'max X правая граница
a2 = 800 'min Y верхняя граница
b2 = 200 'max Y нижняя граница
n = 300 'Длина участка
xn = Val(Text1.Text)
yn = (a2 - b2) \ 2 + b2
s = 0
Do
s = s + 1
'MsgBox " Участок трассы № " + Str(s)
xk = ((xn + n) - xn) * Rnd + xn
yk = (b2 - a2) * Rnd + a2
If xk > b1 Then
Picture1.Line (xn, yn)-(b1, yk)
Else
Picture1.Line (xn, yn)-(xk, yk)
End If
xn = xk
yn = yk
Loop While s < 40 And xk <= b1
Picture1.DrawWidth = 1
End Sub
Дополните задание 17.2:
измените цвет оси Х на синий.
дополните код и прокомментируйте его:
Picture1.Line (20, 200)-(500, 800), vbMagenta, B ‘
установить пропорции сторон прямоугольника один к трем в I-й четверти, четыре к одному во II-й четверти;
начертить квадрат в третей четверти, провести заливку квадрата желтым цветом: для закраски добавьте перед командой рисования квадрата команду определения цвета заливки FillColor и команду определения стиля заливки FillStyle (0 соответствует сплошной заливке):
FillColor = vbYellow
FillStyle = 0
Рис. 17.3
Рисование объектов (кнопка «Рисование круга, сектора, окружности, эллипса»).
Private Sub Command4_Click()
'Светофор
Picture1.DrawWidth = 1
Picture1.FillStyle = 0
Picture1.FillColor = vbRed
Picture1.Circle (0, 1700), 100, vbWhite
Picture1.FillColor = vbYellow
Picture1.Circle (0, 1450), 100, vbWhite
Picture1.FillColor = vbGreen
Picture1.Circle (0, 1200), 100, vbWhite
'Семицветик
Picture1.Circle (1250, 1500), 150, vbBlack,,, 2
Picture1.Circle (1250, 1000), 150, vbBlack,,, 2
Picture1.Circle (1500, 1250), 150, vbBlack,,, 0.5
Picture1.Circle (1000, 1250), 150, vbBlack,,, 0.5
Picture1.Circle (1250, 1250), 100, vbBlack
'Добавить к светофору:
Picture1.DrawWidth = 5
Picture1.Circle (0, 1700), 150, vbRed, 1, 5
Picture1.Circle (0, 1450), 150, vbYellow, 1, 5
Picture1.Circle (0, 1200), 150, vbGreen, 1, 5
Picture1.DrawWidth = 1
Picture1.FillStyle = 1 'При тестировании установить заливку цветом =1
Picture1.Circle (-1200, -1200), 400, vbCyan, -0.00000000001, -0.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -0.5, -0.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -1, -1.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -1.5, -1.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -2, -2.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -2.5, -2.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -3, -3.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -3.5, -3.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -4, -4.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -4.5, -4.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -5, -5.4
Picture1.Circle (-1200, -1200), 400, vbCyan, -5.5, -5.9
Picture1.Circle (-1200, -1200), 400, vbCyan, -6, -6.283128
'разукасить цветок смешав цвета (ИДЗ)
Мигалка
'Picture1.DrawWidth = 50
'Picture1.FillStyle = 0
'Picture1.Circle (600, -600), 600, QBColor(Int(Rnd() * 15))
's = 0
'Do
'Picture1.FillStyle = 0
'Picture1.FillColor = QBColor(Int(Rnd() * 15))
'Picture1.Circle (600, -600), 300, QBColor(Int(Rnd() * 10 + 5)), s, s + 0.2
's = s + 1
'Loop While s < 7
End Sub
Рис. 17.4
ЗАВДАННЯ 17.3. Постановка задачи: СОЗДАТЬ ПАЛИТРУ ХУДОЖНИКА ДЛЯ СМЕШИВАНИЯ КРАСОК
ЗАВДАННЯ 17.4. Постановка задачи: ПОСТРОИТЬ СТОЛБЦЕВУЮ ДИАГРАММУ ПО РЯДУ ДАННЫХ.
Порядок действий
Добавьте в проект новую форму. Разместите на форме 1 объект PictureBox, 6 объектов CommandButton, при нажатии которых будет создан массив с исходными данными, выполняться построение диаграммы, установка и изменение координат, очистка PictureBox, корректный выход.
Рис. 17.5
Построение диаграммы по установленной шкале и по шкале, соответствующей данным
4.1. Объявление переменных:
Option Explicit
Dim n, i As Integer
Dim a(100), max, imax, min, imin, ky, kx
Корректный выход (кнопка «Выход»).
Private Sub Command2_Click()
Form3.Show
End Sub
Очистка PictureBox (кнопка «Очистка»).
Private Sub Command3_Click()
Picture1.Cls
End Sub
Создание массива с исходными данными (кнопка «Создать массив»).
Например, задан ряд данных – массив а(і) где і[1,n], n=4.
Сформировать массив с выводом его на форму.
Private Sub Command4_Click()
n = 4
a(1) = 200
a(2) = 300
a(3) = 500
a(4) = 200
Print a(1), a(2), a(3), a(4)
End Sub
Установка системы координат (кнопка «Установка шкалы»).
Private Sub Command5_Click()
Dim x1 As Integer, x2 As Integer, y1 As Integer, y2 As Integer
'If Text1.Text <> 0 And Text2.Text <> 0 And Text3.Text <> 0 And Text4.Text <> 0 Then
ky = Picture1.Height / (Text2.Text - Text4.Text)
Print "Коэффициент масштабирования по У", ky
kx = Picture1.Width / (Text3.Text - Text1.Text)
Print "Коэффициент масштабирования по У", kx
x1 = Val(Text1.Text) * kx
x2 = Val(Text3.Text) * kx
y1 = Val(Text2.Text) * ky
y2 = Val(Text4.Text) * ky '+ min
Picture1.Scale (x1, y1)-(x2, y2)
Picture1.DrawWidth = 1
Picture1.Line (x1, 0)-(x2 - 100, 0) 'îñü X
Picture1.Print "X"
Picture1.Line (0, y1)-(0, y2) 'îñü Y
Picture1.PSet (10, y1 - 50)
Picture1.Print "Y"
'End If
Picture1.DrawWidth = 3
Picture1.PSet (0, 0)
End Sub
Изменение системы координат соответственно данным (кнопка «Переустановка шкалы, соответственно массиву»).
Private Sub Command6_Click()
Рекомендация Определите наибольшее и наименьшее значения элементов массива и их порядковые номера.
max = a(1)
imax = 1
min = a(1)
imin = 1
For i = 2 To n
If a(i) > max Then max = a(i): imax = i
If a(i) < min Then min = a(i): imin = i
Next i
If max < 0 Then max = 0
Text5.Text = max
Text6.Text = imax
If min > 0 Then min = 0
Text7.Text = min
Text8.Text = imin
'Print "Разница между максимальным и минимальным элементами составила ", max - min
Picture1.Height = 4000
Picture1.Height = 4000
ky = Picture1.Height / (max - min)
Print "Коэффициент масштабирования по У", ky
Picture1.Width = 4000
kx = Picture1.Width / n
Print "Коэффициент масштабирования по У", kx
Text1.Text = 0
Text3.Text = n
Text2.Text = max
Text4.Text = min
End Sub
Построение диаграммы (кнопка «Построить диаграмму»).
Наибольшее данное отобразить красным цветом, остальные – синим
Private Sub Command1_Click()
For i = 1 To n
'If i = imax Then Picture1.sColor = vbRed Else Picture1.sColor = vbBlue
Picture1.Line (kx * (i - 1), 0)-(kx * i, a(i) * ky),, B
Next i
End Sub
Замечание:
Можно добавить «округление» длины данного до ближайшего целого, делящегося на 10 без остатка (Например, 12 округлить до 20, 1159 округлить до 1200 и.т.д – работа с текстом).
Можно считывать данные из файла – полезнее!!!
Для анимации переключение светофора и «рябь» штриховкой.
Для анимации синхранизация светофора с движением поезда (окружности).
1 Примечание. Эти процедуры являются подпрограммами в главной программе Project1. То есть процедуры – это программы, выполняемые «внутри» другой программы. В дальнейшем мы увидим, что любая процедура сама может содержать в себе подпрограммы (другие процедуры). Написанные нами процедуры называются событийными. Они выполняются в том случае, когда с некоторым объектом происходит некоторое событие.
2 Примечание. Вместо слова Print можно набирать знак вопроса « ? », Visual Basic сам заменит его на метод Print.
3 Примечание Метод Print предписывает выводить (визуализировать) информацию.
4 Примечание. Компетентного и аккуратного программиста отличает способность дать точное имя (свойство Name) объекту управления и форме, так чтобы в программе была возможность распознать и тип объекта управления, и его назначение.
5 Примечание. Обратите внимание, во второй строке Окна программного кода имеются два окна списков. В левом указан объект управления, с которым связан программный код (процедура), в нашем случае это командная кнопка ВЫХОД (значение свойства Name этой кнопки – cmdВыход мы видим в окне). В правом окне указано событие, которое должно быть произведено, чтобы выполнялась данная процедура, в нашем случае это щелчок мышью по кнопке ВЫХОД (Click).
6 Рекомендация. Поставьте знак {‘ } перед оператором Option Explicit 1–й строки программного кода (см. лр2 п.28)
7 Комментарии можно не набирать.
8 Примечание. Лучше выбирать имена переменных так, чтобы они несли в себе информацию о назначении переменной, но не нужно делать их слишком длинными, т.к. в программе Вам придется на них ссылаться.
9 Примечание. Переменная может встречаться в программе несколько раз. Нужно ли всегда писать суффикс в конце ее имени? Не обязательно. Этот суффикс можно написать только один раз – когда переменная впервые появилась в тексте программы.
10 Примечание. Можно, не объявляя переменную, просто использовать ее имя, как Вы и делали в Лабораторной работе № 1. Если не определять тип данных, то присваивается тип Variant. Необходимо учитывать, что переменные типа Variant занимают больше места в памяти и обращение к ним происходит несколько медленнее.
11 Примечание. Кроме объявляемых констант, в программе могут использоваться системные, встроенные константы, например, значение цвета VbRed, VbWhite и т.д. Имена этих констант – ключевые слова Visual Basic.
12 Примечание. В Visual Basic все объекты, в которые можно что-то записать, обладают методом Print. Например, чтобы отобразить на форме frmMyForm строку "Привет ", можно составить следующий код: frmMyForm.Print "Привет" При использовании метода Print разрешается опускать имя объекта. Обычно таковым объектом является активная форма.
13 Примечание: Если вам не понятна причина ошибки, щелкните по кнопке <Справка>. Оперативную справку можно получить по любому ключевому слову Visual Basic. Для этого следует установить курсор на слово и нажать клавишу [F1].
14 графические методы применимы к форме, объекту PictureBox и некоторым другим объектам
15 свойство DrawWidth – число (Integer) – размер (диаметр) точки, по умолчанию = 1
