- •Литература:
- •Язык программирования Visual Basic является основой не только системы программирования, его версия -
- •Методика программирования на Visual Basic сводится к следующему:
- •В основе ООП лежат три принципа: инкапсуляции, наследования и полиморфизма.
- •Программный объект в ООП называется «контейнером». Контейнер включает в себя данные и программный
- •Рисунок 2. Первоначальное состояние среды разработки Visual Basic
- •1.2. Алфавит и лексемы языка
- •При запуске Редактора кода (Code Editor) появляется окно, котором можно вводить текст программы.
- •Лексемы языка Visual Basic. Программирование линейного вычислительного процесса
- •Лексема — это единица текста программы,
- •Visual Basic накладывает на имена следующие ограничения:
- •Примеры имен переменных:
- •В Visual Basic, как и в других языках программирования, есть зарезервированные (ключевые) слова,
- •Существуют соглашения по стилю имен, которых желательно придерживаться:
- •Длинное целое (Long) – занимает четыре байта памяти; Короткое целое (Byte) – всего
- •Переменные — это объекты, предназначенные для хранения данных. В разные моменты времени переменные
- •Option Explicit ‘запрещение запуска программы
- •Константы — это объекты, значения которых остаются постоянными и не могут быть изменены
- •Вещественные константы представляются в памяти
- •Примеры использования предопределенных констант:
- •Различают динамические и статические
- •2.2. Встроенные функции Visual Basic
- •Randomise — генератор случайных чисел;
- •Арифметическое выражение в Visual Basic
- •Составить программу для вычисления результата по формуле:
- •Текст программного модуля приведён ниже. Процедура запускается по щелчку мыши на свободном поле
- •При программировании часто приходится выводить информацию непосредственно на форму с помощью метода Print.
- •В ситуации, когда необходимо продолжать печатат значения в той же строке, вызывая новые
- •Алгоритмизация
- •Алгоритм и его свойства
- •Алгоритм и его свойства
- •Начало
- •Язык блок-схем
- •Требования к изображению блок-схем
- •Алгоритм решения квадратного уравнения
- •Текст модуля
- •Текст модуля (продолжение)
- •Базовые алгоритмы циклической
- •Базовые алгоритмы циклической
- •Программирование разветвляющихся процессов
- •Условный оператор
- •Условный оператор
- •Пример программы
- •Оператор выбора Select Case
- •Оператор выбора Select Case
- •Программный код должен содержать 5 одинаковых процедур для 5 событий – щелчок мышью
- •Sub Summa(v1%, v2%, v3%, v4%, v5%, s%, m%)
- •Private Sub Проверка1_Click()
- •Системные функции, функции RND, Timer, IIf
- •К системным функциям относятся функции, действие которых напрямую зависит от работы Windows. Мы
- •Окно ввода
- •Текст модуля
- •Функция MsgBox служит для выдачи сообщени пользователю через системное окно.
- •Простая экранная форма – приветствие приведена на рисунке. В этом окне имеются три
- •Рассмотрим использование ещё нескольких функций: датчика случайных чисел, счётчика времени и IIf.
- •Private Sub Комманда1 _Click()
- •Программирование циклических процессов
- •Объявление массивов
- •Объявление массива имеет следующий вид: Dim / Public / Private Имя_Массива (индексы)_Аs Тип_Данных
- •Объявление одномерного массива из восьми
- •Динамические массивы применяются в том случае, когда количество элементов массива заранее неизвестно и
- •Пример:
- •Для того, чтобы организовать повторени операций используют оператор цикла For Next. Оператор используется
- •Задача 1:
- •Задача2: Сумма элементов массива
- •Задача 3.
- •Программирование циклических процессов (продолжение)
- •Электронная форма для задачи поиск максимального элемента в одномерном массиве.
- •Private Sub Комманда1_Click() Dim MyArray As Single
- •Сортировка методом «пузырька»
- •Текст модуля: Сортировка
- •Пользовательское меню программы
- •Private Sub Комманда1_Click()
- •Пользовательское меню программ
- •Private Sub Комманда1_Click()
- •Оператор цикла Do-Loop. Логическ управляемый цикл, оператор Do — начало оператор Loop —
- •3) Условие False в начале цикла.
- •Условие проверяется в конце цикла.
- •Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.
- •Цикл For Each. Оператор относится к категории объектных операторов, т.е. применяется к массивам,
- •Формула линейной интерполяции
- •Пример программы с оператором For Each.
- •Пример программы с оператором For Each (продолжение).
- •Использование процедур в VB
- •Программные модули на VB состоят из процедур. Использование процедур упрощает программирование, разбивая код
- •В противоположность ей процедура обработки события после вызова остаётся в ожидания событий, вызванных
- •Если имя процедуры уникально, то включать имя модуля
- •присваивается переменной с именем процедуры. Обычно процедуре для выполнения требуется некоторая информация о
- •Ключевое слово ByVal служит признаком того, что параметр передаётся по значению. Например:
- •Private Sub Комманда1_Click() Dim M, Y As Single
- •Function arcsin(x)
- •Использование файлов в Visual Basic
- •Работа с файлами в языке Visual Basic
- •Следовательно, для ввода и вывода данных в файл имеет значение не имя файла,
- •Важнейшим атрибутом файла является его
- •Операторы и функции для работы с файлами последовательного доступа
- •Формат записи оператора:
- •Пример:
- •Записывать данные в текстовый файл можно
- •Пример результата для оператора Write:
- •В качестве примера запишем программу, которая помещает в объект Text1 класса Текстовое поле
- •Разработать приложение, в котором необходимо: создать список группы студентов с указанием их фамилии,
- •Программный код для приложения можно
- •Private Sub Command2_Click()
- •Do Until EOF(2)
- •Выход
Формат записи оператора:
OPEN имя файла[FOR режим]As[ # дескриптор файла] где: имя файла может включать устройство и
путь поиска файла на диске; режим—для текстовых файлов одно из трёх ключевых слов:
Output — используется если файл открывается для записи с первой позиции (вся старая информация при этом уничтожается); Append — используется, если файл
открывается для продолжения записи; Input — используется, если файл
открывается для чтения из него текстовых данных.
Дескриптор файла — это любое целое число от 1 до 511, которое служит идентификатором файла в программе.
Оператор CLOSE # [список дескрипторов файлов] —закрывает все файлы, идентификаторы которых указаны в списке через запятую. Если список дескрипторов отсутствует, то закрываются все открытые в программе файлы.
•Оператор INPUT # дескриптор файла, список переменных.
•Оператор lineINPUT # дескриптор файла, список переменных.
Чаще всего чтение из текстового файла производится циклически, с помощью оператора цикла с условием: Do While ... Loop или Do Until...
Loop. Условием окончания цикла является попытка прочитать данные после чтения последней строки. Эта попытка приводит к тому, что значение функции EOF будет true.
Пример:
Запишем программу, которая помещает все фамилии, имена и даты рождения из файла ГодРождения1.txt в три окна списка ListBox экранной формы:
Private Sub Command1_Click()
Open “ГодРождения 1.txt” For Input As#1 Do Until EOF(1)
Input # 1, Фамилия$, Имя$, ГодРождения% ListBox1. Addltem Фамилия$
ListBox2. Addltem Имя$
ListBox3. Addltem ГодРождения% Loop
Close # 1
End Sub
Записывать данные в текстовый файл можно
двумя способами с помощью операторов Write и Print. Оба оператора записывают данные в файл текстовыми строками. Текстовая строка — это последовательность символов, заканчивающаяся знаком "конец строки" (код = 26) или знаком возврата каретки (код в таблице символов = 13) и "перевода строки" (код = 10) .
Синтаксис операторов записи в текстовый файл одинаков:
Write # дескриптор файла, [список значений] Print # дескриптор файла, [список значений].
Список значений — это записанные через разделитель значения. В операторе Write элементы этого списка записываются в одну текстовую строку файла через запятую. Элементы типа String заключаются в кавычки.
В операторе Print, если разделитель точка с запятой, то значения будут записаны подряд, без промежутков между ними, а, если разделитель запятая, то значения будут записываться в 14- символьные зоны вывода.
Пример результата для оператора Write:
“Иванов”,”Иван”, 1986 “Петров”,”Петр”, 1984 “Сидоров”,”Николай”, 1985
Пример результата для оператора Print:
Иванов Иван 1986 Петров Петр 1984 Сидоров Николай 1985
Функция Input — это функция двух аргументов, где первый аргумент — это количество символов, которые надо прочесть, а второй дескриптор файла.
В качестве примера запишем программу, которая помещает в объект Text1 класса Текстовое поле число, определяющее размер файла ГодРождения1
.txt.
Open “ГодРождения.txt” For Input As # 1
Dim ЧислоСимволов As Integer
ЧислоСимволов = LOF(1)
Text 1.Text = Input(ЧислоСимволов, # 1)
Close # 1
Разработать приложение, в котором необходимо: создать список группы студентов с указанием их фамилии, имени и оценки по информатике путем заполнения файла последовательного доступа, используя окно ввода, предусмотреть просмотр введенного файла и подсчет среднего балла.
При чтении файла его содержимое будет помещено в текстовое окно, а запись в файл будет осуществляться с помощью оператора Write. После ввода очередной фамилии, имени и оценки будет появляться окно сообщения MsgBox с двумя кнопками Yes, No и вопросом "Продолжить ввод?". При нажатии на кнопку Yes цикл будет продолжен, а при нажатии на кнопку No – прекращен. На форму надо поместить 4 командные кнопки Создание файла, Чтение из файла, Средний балл, Выход, текстовое поле TextBox, 3 метки для поясняющего текста к полю TextBox, вывода подсчитанного среднего балла и вывода фамилии и группы студента. Поскольку текстовое поле предназначено для вывода содержимого файла, содержащего несколько строк, необходимо предварительно изменить некоторые его свойства: Text – удалить имя Text1, MultiText – установить значение True, ScrollBars – установить значение Vertical (см. рис.).
Программный код для приложения можно
записать так:
Private Sub Command1_Click() ' Кнопка Создание файла
Dim fam As String, im As String, ball As Integer Open "D:\Students\ДЭм11\Группа2.txt" For_ Output As 2
Do
fam = InputBox("Ввод фамилии", "Создание файла")
im = InputBox("Ввод имени", "Создание файла")
ball = Val(InputBox("Ввод оценки по информатике", "Создание файла"))
Write #2, fam, im, ball
ans = MsgBox("Продолжить ввод?",vbQuestion + _ vbYesNo, "Создание файла")
Loop Until ans = vbNo Close #2
End Sub
Private Sub Command2_Click() |
' |
Кнопка |
|
Чтение из файла |
|
|
|
Dim kol_sym As Integer |
|
For _ |
|
Open "D:\Students\ДЭм11\Группа2.txt" |
|||
Input As 2 |
' Количество символов в |
||
kol_sym = LOF(2) |
|||
файле |
|
|
|
Text1.Text = Input(kol_sym, #2) Close #2
End Sub
Private Sub Command3_Click() 'Кнопка Средний балл
Dim fam As String, im As String, ball As Integer, _ kol As Integer, _
sum As Integer, sr As Single
Open "D:\Students\ДЭм11\Группа2.txt" For _ Input As 2
kol = 0: sum =0
Do Until EOF(2)
Input #2, fam, im, ball kol = kol + 1
строк в файле
sum = sum + ball баллов
Loop
'Подсчет количества
'Подсчет суммы
sr = Round(sum / kol, 2) ' Подсчет среднего балла и округление его до 2 цифр
' в дробной части Label1.Caption = "Средний балл=" & sr Close #2
End Sub
Результат работы приложения представлен на рис. 5.2.