- •Содержание
- •Лабораторна робота № 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. Графіка
Завдання на самостійну роботу(в,вс,лс)
ЗАВДАННЯ 9.4, 9,5. СТВОРІТЬ ПРОЕКТИ ЗГІДНО З ВАРІАНТОМ ІНДИВІДУАЛЬНОГО ЗАВДАННЯ.
Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 2
ЗАВДАННЯ 9.6. Постановка задачи: ВЫВЕСТИ ВСЕ ВОЗМОЖНЫЕ СПОСОБЫ РАЗМЕНА ОПРЕДЕЛЕННОЙ СУММЫ ДЕНЕГ С ПОМОЩЬЮ КУПЮР ДОСТОИНСТВОМ 1, 2 И 5 ГРН. ЭТА СУММА ДЕНЕГ ДОЛЖНА ВВОДИТЬСЯ С ПОМОЩЬЮ ОКНА INPUTBOX (РИС. 9.2). Вид работающего приложения представлен на рис. 9.5.
Порядок действий
1. Расположите на форме две метки, одну командную кнопку и одно текстовое поле (рис. 9.5).
Рис. 9.52
2. Установите значения свойства Name:
для кнопки — cmdРазмен;
для второй метки — lblСумма;
для текстового поля — txtРазмен.
для текстового поля установите значение свойства MultiLine —True и значение свойства ScrollBars — 2(Vertical).
3. Все остальные свойства, определяющие внешний вид проекта, установите по собственному желанию.
4. Проанализируйте, а затем наберите программный код проекта:
Private Sub cmdРазмен_Click()
Dim k As String, r As Integer, d As Integer, p As Integer, n As Integer
txtРазмен = ""
k = InputBox("Введіть суму грошей, яку бажаєте розміняти", "Розмін")
n = Val(k)
lblСумма.Caption = "Ваша сума " + Str(n) + " грн."
For r = 0 To n 'r — можлива кількість купюр по 1 грн.
For d = 0 To n / 2 'd — можлива кількість купюр по 2 грн.
For p = 0 To n / 5 'p — можлива кількість купюр по 5 грн.
If 1 * r + 2 * d + 5 * p = n Then 'Якщо сума грошей з купюр по 1, 2, 5 грн. дорівнює сумі,
яку треба розміняти, то цей варіант розміну друкується в текстовому полі
txtРазмен.Text = txtРазмен.Text + (Str(r) + " x 1 грн " + Str(d) + " x 2 грн " + Str(p) + " x 5 грн ") + Chr(13)
End If
Next p
Next d
Next r
End Sub
Сохраните проект с именем Лр9_Зад6_Фамилия
Запустите проект. Проанализируйте результат.
ЗАВДАННЯ 9.7. ОПРЕДЕЛИТЬ, СКОЛЬКО СУЩЕСТВУЕТ ВАРИАНТОВ РАЗМЕНА СУММЫ 3 РУБ. 20 КОП., ЕСЛИ У ВАС ИМЕЮТСЯ МОНЕТЫ ДОСТОИНСТВОМ 2 РУБ., 1 РУБ., 50 КОП., 10 КОП.
Завдання на самостійну роботу(в,вс,лс)
ЗАВДАННЯ 9.8 ВЫВЕСТИ НА ФОРМУ СЛЕДУЮЩУЮ ИНФОРМАЦИЮ:
1
12
123
1234
12345
123456
ЗАВДАННЯ 9.9. СОСТАВИТЬ ПРОГРАММУ, ПОЗВОЛЯЮЩУЮ РАСПЕЧАТАТЬ ПРОСТЫЕ НАТУРАЛЬНЫЕ ЧИСЛА В ДИАПАЗОНЕ ОТ 1 ДО 100.
ЗАВДАННЯ 9.10. ЕСЛИ ТРЕХЗНАЧНОЕ ЧИСЛО РАВНО СУММЕ КУБОВ ЧИСЕЛ, ОБРАЗУЮЩИХ ЭТО ЧИСЛО, ТО ТАКОЕ ЧИСЛО НАЗЫВАЕТСЯ "МАГИЧЕСКИМ". НАЙТИ ВСЕ МАГИЧЕСКИЕ ЧИСЛА.
Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 1.
Засоби заповнення та обробки одновимірних масивів
При составлении программ важно правильно организовать не только действия, но и структуру данных, которые программа обрабатывает. Visual Basic различает три вида структур данных: массивы, структуры и коллекции. Наиболее распространенный способ организации данных – табличный.
Различаются линейные и прямоугольные таблицы. В программировании понятию таблицы соответствует понятие массива.
Массив – упорядоченная последовательность однотипных величин, имеющих общее имя.
Линейной таблице соответствует одномерный массив.
Прямоугольной таблице соответствует двумерный массив.
До сих пор мы рассматривали только простые переменные. Имени переменной соответствовала одна ячейка памяти.
Структуры данных — это объединение под одним именем нескольких ячеек памяти. Массив – одна из таких структур в Visual Basic.
Пример одномерного массива:
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Fam |
Петров |
Иванов |
Сидоров |
Котов |
Кротов |
Андреев |
Титов |
Львов |
Смирнов |
Лунин |
Мамин |
Под общим именем Fam объединено 11 ячеек памяти, содержащих однотипные строковые величины – фамилии. i – индекс (номер) элемента в массиве. При обращении к элементу массива указывается имя массива и в скобках его индекс.
Fam (2) = «Иванов»
Fam (7) = «Титов»
Прежде чем использовать массив, его необходимо объявить. При объявлении массива Visual Basic выделяет под него место в памяти. Массивы в программе объявляются точно так же, как объявляются обычные скалярные переменные. Если массив объявлен локальным, его можно использовать только в той процедуре, в которой он объявлен. Если массив объявлен как глобальный в стандартном модуле, он может быть использован в любом месте в программе.
При объявлении массива в оператор объявления необходимо включить следующую информацию:
Информация, помещаемая в оператор объявления массива |
Описание |
Имя массива
|
Имя, которое будет использоваться для представления массива в программе. Для имен массивов применяются те же правила, что и для имен скалярных переменных. |
Тип данных |
Тип данных, который будет использоваться для элементов массива. |
Размерность |
Количество измерений массива. Большинство массивов являются одномерными или двумерными, но при необходимости работы со сложными математическими моделями, например, трехмерными фигурами, можно задать и большее количество измерений массива. |
Размер
|
Количество элементов, которые будут содержаться в массиве. Номера элементов в массиве соответствуют их индексам. По умолчанию первый элемент массива имеет индекс 0 (ноль). |
Массивы, приведенные в качестве примеров, могут быть описаны следующим образом:
Public Fam (1 To 11) As String
Dim B(1 To 4,1 To 3) As Single
В первом случае объявлен одномерный массив из 11 элементов с индексами от 1 до 11; имя массива – Fam; тип данных – String ; массив объявлен как глобальный. Во втором случае объявлен двумерный массив из 12 (4*3) элементов; имя массива – В; тип данных – Single; массив объявлен как локальный. Часто минимальное значение индекса не указывается. Тогда оно автоматически (по умолчанию) принимается равным 0. Ключевое слово To при этом не используется. Максимальное значение индекса должно быть указано обязательно.
Поместив в стандартный модуль оператор Option Base 1 можно сделать программу более удобной для восприятия, заменив индекс первого элемента каждого массива на 1 вместо 0. Допускаются отрицательные значения индексов.
Прежде чем обрабатывать массив его необходимо заполнить. Массив можно заполнить случайными числами, данными из файла, вводом с клавиатуры с помощью окна InputBox и др. Массивы, которые содержат строго определенное количество элементов, называются массивами c фиксированной границей. Массивы, которые содержат переменное количество элементов (массивы, размеры которых могут изменяться в процессе выполнения программы), называются динамическими.
Динамический массив создается в такой последовательности:
1) с помощью ключевых слов, используемых при создании массива фиксированного размера, объявляется массив. Список размерности массива остается пустым, например:
Dim Count () As Integer
2) с помощью оператора ReDim указывается размерность массива в виде числа или выражения. Синтаксис оператора ReDim аналогичен синтаксису оператора объявления массива фиксированного размера. Например, размерность массива может быть задана любым из следующих способов:
ReDim Count (х)
ReDim Count (20)
ReDim Count (l То 20)
При выполнении оператора ReDim данные, размещенные в массиве ранее, теряются. Это удобно в том случае, если данные больше не нужны и требуется переопределить размерность массива и подготовить его для размещения новых данных. Если хотите изменить размер массива, не потеряв при этом данных, необходимо воспользоваться оператором ReDim с ключевым словом Preserve.
Например, приведенный ниже программный код увеличивает размер массива на единицу без потери хранящихся в массиве данных:
ReDim Preserve Count (х + 1)
Окно списка и Комбинированное окно
Окно
списка
(ListBox
)
(см
Л.Р.8
Завд.
8.6)
позволяет хранить не одно значение, а
список значений. Список
значений
– это упорядоченное множество. Элементы
списка имеют индекс. Минимальный индекс
равен 0.
Значения в списке имеют тип String.
Важным
свойством объекта является свойство
ListIndex.
После того как пользователь щелкнет на
пункте списка, свойство ListIndex
возвращает
число, которое соответствует позиции
пункта в списке, т.е. индексу.
Комбинированное
окно
(ComboBox
)
(см Л.Р.8
Завд.
8.6)
представляет собой объединение двух
полей окна списка и текстового поля.
Комбинированное окно аналогично Окну
списка,
но занимает меньше места. Окно имеет
свойство Style.
Значение свойства 0
делает список невидимым (его можно
увидеть, щелкнув по кнопке раскрытия
списка). Свойство ListIndex
аналогично
этому же свойству Окна
списков.
ЗАВДАННЯ 10.1. Постановка задачи: ВЫПОЛНИТЕ ПРОЕКТ, ПОЗВОЛЯЮЩИЙ ЗАПОЛНЯТЬ МАССИВ ДВУМЯ СПОСОБАМИ:
1 - СЛУЧАЙНЫМИ ЦЕЛЫМИ ЧИСЛАМИ В ДИАПАЗОНЕ ОТ 0 ДО100;
2 - ПУТЕМ ВВОДА ЧИСЕЛ С КЛАВИАТУРЫ (НЕ ОБЯЗАТЕЛЬНО ЦЕЛЫХ).
После того как будет сформирован графический интерфейс пользователя, форма должна выглядеть следующим образом (рис.10.1):
Порядок действий
1. Расположите элементы управления на экранной форме в соответствии с рисунком. Для выбора способа заполнения массива использовать комбинированное окно ComboBox.
2. Значения свойств элементов управления, которые определяют внешний вид приложения установите по своему усмотрению.
3. Значения свойств Caption меток, кнопок и рамок установите в соответствии с рис 10.1.
4. Установите значения свойств объектов в соответствии со следующей таблицей:
Табл. 10.1
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption |
frmМассив Способы заполнения массива |
Текстовое окно |
Name |
txtN |
Текстовое окно |
Name |
txtМассив |
Текстовое окно |
Name |
txtMax |
Текстовое окно |
Name |
txtnMax |
Командная кнопка |
Name |
cmdМассив |
Командная кнопка |
Name |
cmdMax |
Комбинированное окно |
Name |
cboСпособ |
Text |
Выберите способ заполнения массива |
|
Style |
0 |
|
List |
Список должен содержать два способа заполнения: -ввод с клавиатуры -случайными числами |
5. Подробно разберите программный код, написанный для заполнения массива разными способами, а затем наберите его:
Option Explicit
Dim a() As Single ‘Массив объявлен как динамический, количество элементов в нем может быть различным
Dim i As Integer
Dim n As Integer
Dim K As String
Dim Max As Single, nMax As Integer
Dim ListIndex As Integer
Private Sub cmdМассив_Click()
n = Val(txtN.Text)’Введено количество элементов в массиве
ReDim a(1 To n) ’Переопределение массива. Количество элементов в массиве – n.
Select Case cboСпособ.ListIndex
Case 0
txtМассив.Text = ""
For i = 1 To n
K = InputBox("Введите число" + Str(i) + " число", "Заполнение массива")
a(i) = Val(K)
txtМассив.Text = txtМассив.Text + " " + Str(a(i))
Next i
Case 1
txtМассив.Text = ""
Randomize Timer
For i = 1 To n
a(i) = Int(100 * Rnd())
txtМассив.Text = txtМассив.Text + " " + Str(a(i))
Next i
End Select
End Sub
7. Проверьте, что заполнение массива обоими способами происходит нормально.
ЗАВДАННЯ 10.2. Постановка задачи: ВЫПОЛНИТЕ ПРОЕКТ, ПОЗВОЛЯЮЩИЙ НАХОДИТЬ МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ МАССИВА (ЗАПОЛНЕННОГО В ЗАВДАННІ 10.1) И ЕГО НОМЕР.
8. Предварительно ознакомьтесь с алгоритмом поиска максимального элемента.
Алгоритм поиска максимального (минимального) элемента в массиве:
Дано: N — количество элементов в массиве А; А(1: N) — N элементов массива А.
Вычислить: наибольший элемент Мах в массиве А и его номер nМах.
Принцип поиска заключается в сравнении каждого элемента массива со значением в Мах и запоминанием в нем элемента, который оказался больше значения Мах. Для корректного первого сравнения в качестве начального значения Мах можно использовать первый элемент массива, тогда сравнения в цикле целесообразно начинать с i = 2. При поиске максимального значения среди элементов массива, удовлетворяющих не которому условию, например, только среди отрицательных элементов, нельзя в качестве Мах использовать первый элемент массива, так как А(l) может не быть отрительным. В этом случае в качестве начального значения Мах можно использовать очень маленькое число (-1. Е38 — для массива вещественных чисел и -32768 – для целочисленного массива). Как только встретится отрицательный элемент массива, больший Мах, значение Мах будет заменено на этот элемент. Если Мах останетсн неизменным, это значит, что в массиве нет элементов, удовлетворяющих заданному условию (отрицательных).
Для поиска минимального элемента среди элементов массива, в качестве начального значения Min нужно использовать большое положительное число (l.E38 — для массива вещественных чисел, 32761 — для целочисленного массива).
9. Проанализируйте приведенный программный код поиска максимально элемента в массиве.
10. Наберите процедуру поиска максимального элемента.
Private Sub CmdMax_Click()
FrmМассив.Caption = " Пошук максимального елемента"
max = a(1): nmax = 1
For i = 2 To n
If a(i) > max Then
max = a(i)
nmax = i
End If
Next i
MsgBox "максимум " + Str(max), 0 + 64, "максимум"
TxtMax.Text = Str(max)
Txtnmax.Text = Str(nmax)
End Sub
11. Проверьте правильность работы проекта и сохраните его под именем Лр10_Зад2_Фамилия
