Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для_заочн_СВФ / Методичка VB.doc
Скачиваний:
48
Добавлен:
09.05.2015
Размер:
354.82 Кб
Скачать

‘ Объявление двухмерного массива

Dim z(2,3) As Single

‘ Объявление простых переменных

Dim i As Byte, j As Byte, S As Single

‘ Ввод двухмерного массива по строкам

For i = 1 To 2

For j = 1 To 3

z(i,j) = Val(InputBox("z(i,j) ","Матрица"))

Next j

Next i

‘ Вывод двухмерного массива в общепринятом виде (по строкам)

Print "Матрица z"

For i = 1 To 2

For j = 1 To 3

Print z(i,j),

Next j

Print

Next i

‘ Вычисление суммы всех элементов матрицы

‘ Обработка двухмерного массива по строкам

S = 0

For i = 1 To 2

For j = 1 To 3

If z(i,j) > 0 Then S = S + z(i,j)

Next j

Next i

Print "S ="; S

‘ Вычисление суммы положительных элементов каждого столбца

‘ Обработка двухмерного массива по столбцам

For j = 1 To 3

S = 0

For i = 1 To 2

If z(i, j) > 0 Then S = S + z(i, j)

Next i

Print "S ="; S,”для столбца -”; j

Next j

Сортировка элементов массива

Сортировка элементов массива может осуществляться несколькими способами. Для сортировки элементов массива по возрастанию или убыванию часто используют «пузырьковый метод». При использовании этого метода первый элемент массива сравнивается последовательно со всеми остальными (начиная со второго). В случае обнаружения элемента, меньшего первого (при сортировке по возрастанию), первый элемент и тот, что меньше его, меняются местами. Затем второй элемент массива сравнивается со всеми остальными и процесс повторяется.

Пример.

Пусть задан массив x(n), отсортировать его в порядке возрастания.

Программный код будет иметь вид:

‘ Объявление динамического массива

Dim х() As Single

‘ Ввод размера массива – n

n = Val(InputBox("Размер массива (n)", "Ввод размера массива"))

‘ Переобъявление динамического массива

ReDim x (n) As Single

‘ Ввод динамического массива X(n)

For i = 1 To n

x (i) = (InputBox("x (i) = ", "Ввод массива"))

Next i

‘ Вывод элементов массива до сортировки

Print " Массив X до сортировки"

For i = 1 To n

Print " x("; i ; ") = "; x(i)

Next i

‘ Сортировка массива по возрастанию

For i = 1 To n – 1

For j = i + 1 To n

If x(i) > x(j) Then

a = x(i) ‘ дополнительная переменная, сохранение x(i)

x(i) = x(j) ‘ обмен местами элементов массива

x(j) = a

Else

End If

Next j

Next i

‘ Вывод отсортированного массива

Print " Массив после сортировки"

For i = 1 To n

Print " x("; i ; ") = "; x(i)

Next i

Работа с файлами последовательного доступа

При проектировании приложений достаточно часто приходится работать непосредственно с файлами для чтения из них данных, записи данных в файл, добавления данных в файл и т.д. В Visual Basic существует понятие типа файла, который определяется организационной структурой хранения информации в файле и способом доступа к этой информации. Выделяют следующие типы файлов: файлы последовательного доступа, файлы произвольного доступа, двоичные (бинарные) файлы.

Файлы последовательного доступа – это текстовые файлы или аналогичные им. Они представляют собой последовательность символов. Данные могут быть с разделителями или без них (структурная единица – строка).

Файлы произвольного доступа – это структурированные файлы, которые содержат информацию в виде записей. Примером могут служить файлы баз данных.

Двоичные (бинарные) файлы это файлы с побайтным доступом. В принципе, это те же файлы с последовательным доступом, но информация в них не организована в строки. Особенность данных файлов – работа с байтами или блоками байтов. К таким файлам можно отнести выполняемые программы, файлы документов Word, файлы динамических библиотек.

Ниже будут рассмотрены примеры работы с файлами последовательного доступа.

Имеется два действия, общие для всех типов файлов – их открытие (оператор Open) и закрытие (операторClose).

Синтаксис оператора Open для открытия файла следующий:

Open полное For режим доступа as [#] идентификатор

имя к файлу файла

файла

Полное имя файла должно записываться в кавычках, например, C:\data.txt”. В качестве имени файла может использоваться имя переменной, значение которой определено ранее.

Режим доступа к файлу может принимать значения: Append (открыт для добавления данных к уже имеющимся в файле), Input (открыт для последовательного чтения данных), Output (открыт для последовательной записи данных, если в файле что-то записано – старая информация затирается) и другие.

Идентификатор файла (номер файла) – целочисленное выражение, задающее идентификатор файла (дескриптор). Может иметь значение от 1 до 511 включительно.

Закрытие файлов выполняется с помощью оператора Close, который имеет следующий синтаксис:

Close [список идентификаторов файлов]

Если список идентификаторов файлов не указан, то закрываются все открытые файлы.

Чтение данных из файла последовательного доступа выполняется с помощью оператора Input # .

Если в программе требуется прочитать данные из файла, в котором информация в строках имеет структуру с разделителями (в качестве разделителя используются запятые), необходимо применять оператор Input #:

Его синтаксис:

Input # идентификатор файла, список переменных

При работе этого оператора сначала считывается целая строка, а затем подстроки, отделенные разделителями (запятыми), помещаются в соответствующие переменные списка. Для корректной работы оператора строки файла должны иметь заданную структуру с разделителями. Для чтения всего содержимого файла необходимо организовать циклическое считывание данных из файла, поскольку данные считываются этим оператором по строкам. Для записи данных в файл используется оператор Write #, имеющий синтаксис, аналогичный оператору Input #:.

Пример. Создать приложение для изучения операторов, предназначенных для работы с файлами. Информация должна считываться с файла и выводиться на экранную форму как в файле и в алфавитном порядке. Файл с данными создан в текстовом редакторе Блокнот и имеет вид:

Экранная форма содержит следующие элементы управления: Label – для оформления надписей (2 элемента), ListBox – для добавления элементов в список (2 элемента), CommandButton – для привязки события Click, приводящего к выполнению программного кода (1 элемент). Вид созданной зкранной формы представлен ниже.

Элемент управления ListBox, размещенный на форме, представляет собой список, из которого пользователь может выбрать одно из предложенных значений. Элементы в список могут добавляться, если использовать метод AddItem. Добавляемый список может быть задан и вручную, путем использования свойства List. Используя свойство Sorted (Сортировка) и значение этого свойства True (по умолчанию – False), можно упорядочить данные в алфавитном порядке. В рассматриваемом приложении элемент управления ListBox с именем List1 имеет значение False свойства Sorted , а элемент управления с именем List2 имеет значение True свойства Sorted . Выводимая информация с файла в первом окне списка выводится в том же порядке, как она записана в файле, а во втором окне - алфавитном порядке. Используемая в программе функция EOF (End of File) контролирует достижение конца файла, то есть цикл будет выполняться до тех пор, пока не считаются все данные в файле.

Программный код имеет вид:

Private Sub Command1_Click()

Dim f As String, x As String

'Ввод имени файла

f = InputBox("Имя файла", "Задание имени файла")

Open f For Input As 1 'Открытие файла

Do While Not EOF(1) 'Цикл работает до достижения конца файла

Input #1, x 'Чтение данных

List1.AddItem x 'Добавление элемента в окно списка

List2.AddItem x 'Добавление элемента в окно списка

Loop

Close 'Закрытие файла

End Sub

Окно созданного приложения после выполнения программы имеет вид:

Для ввода массивов, особенно когда число элементов в них достаточно велико, удобно использовать файлы последовательного доступа.

Пример. Задан одномерный массив Х, состоящий из 10 элементов. Значения элементов массива записаны в файл f1 (разделитель списка элементов - запятая). Массив читается с файла, выводится на экранную форму, а затем каждый из элементов массива меняет свое значение – возводится в квадрат. Новый массив Х записывается в файл с именем f2 и также выводится на экранную форму.

Пример программного кода:

Dim x(10) As Single, I As Byte

Dim f1 As String, f2 As String

'Ввод имени файла для чтения из него данных

f1 = InputBox("Имя файла для чтения", "Файл для чтения")

'Ввод имени файла для записи в него данных

f2 = InputBox("Имя файла для записи", "Файл для записи")

Open f1 For Input As 1 'Открытие файла для чтения данных

Open f2 For Output As 2 'Открытие файла для записи данных

Print “Исходный массив Х”

For I = 1 To 10 'Цикл для работы с массивом Х(10)

Input #1, x(i) ' Чтение элементов массива с файла

Print x(i) 'Вывод элементов массива на форму

x(i)=x(i)^2 ‘Изменение элемента массива

Write #2, x(i) ’Запись нового элемента массива в файл

Next I

Print “Полученный массив Х”

For I = 1 To 10 'Цикл для вывода полученного массива

Print x(i) 'Вывод элементов нового массива на форму

Next I

Close 'Закрытие файлов

Соседние файлы в папке Для_заочн_СВФ