Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка приложений в среде Visual Basic.pdf
Скачиваний:
0
Добавлен:
29.11.2025
Размер:
2.08 Mб
Скачать

‘ Таблица индексов.

Dim IdIndexData(1 To 10000)

Проинициализируем таблицу индексов так, чтобы первый индекс указывал на первую запись данных, второй — на вторую, и т.д.

For i = 1 To 10000

IdIndexData(i).ID = EmployeeData(i).ID IdIndexData(i).Index = i

Next i

Отсортируем таблицу индексов по идентификационному номеру ID. После этого, поле Index в каждом элементе IdIndexData указывает на соответствующую запись данных. Например, первая запись в отсортированном списке — это EmployeeData(IdIndexData(1).Index).

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

Сортировка — одна из наиболее активно изучаемых тем в компьютерных алгоритмах по ряду причин.

Во-первых, сортировка — это задача, которая часто встречается во многих приложениях. Почти любой список данных будет нести больше смысла, если его отсортировать каким-либо образом. Часто требуется сортировать данные несколькими различными способами.

Во-вторых, многие алгоритмы сортировки являются интересными примерами программирования. Они демонстрируют важные методы, такие как частичное упорядочение, рекурсия, слияние списков и хранение двоичных деревьев в массиве.

10.2.Задания

1.Определить тип данных Товар, объявив переменную Инструмент типа Товар, и установить конкретные значения составляющих этой переменной.

2.Определить запись типа TComputer, к полям которой будет производиться доступ, используя инструкцию With

3.Разработать структуру записи для хранения следующей информации: ФИО студента, домашний адрес, дата рождения. Организовать и ввести с клавиатуры массив записей из 5 элементов. Отсортировать записи по полю "ФИО студента" в алфавитном порядке.

4.Разработать структуру записи для хранения следующей информации: название товара, цена, количество. Организовать и ввести с клавиатуры массив записей из 5 элементов. Рассчитать стоимость каждого товара и суммарную стоимость всех товаров.

87

5. Разработать структуру записи для хранения следующей информации: ФИО абонента, домашний адрес, номер телефона. Организовать и ввести с клавиатуры массив записей из 5 элементов. По указанному значению поля "ФИО абонента" определить домашний адрес и номер телефона.

10.3. Порядок выполнения работы

Задание 1.

Type Товар Название As String

Цена As Currency Код As String End Type

Dim Инструмент As Товар Инструмент.Название = "Отвертка" Инструмент.Цена =120

Задание 2.

Public Type TComputer OS As String

CPU As String

RAM As Byte End Type

Dim Computer As TComputer With Computer

.OS = "Windows NT 4.0"

.CPU = "AMD Athlon"

.RAM = 128 End With

или

Computer.OS = "Windows NT 4.0"

Computer.CPU = "AMD Athlon" Computer.RAM = 128

10.4.Контрольные вопросы

1.Как определить пользовательский тип данных?

2.Что такое запись?

3.Поясните как объявить массив элементов типа запись?

4.Как осуществляется доступ к элементам переменной пользовательского типа данных?

5.Что означает инструкция With?

88

Лабораторная работа № 11

Работа с файлами и строками

Цель: приобрести практические навыки в работе с файлами последовательного доступа.

11.1. Методические указания

Текстовые файлы последовательного доступа предназначены для записи и чтения неструктурированных данных. Достоинством файлов последовательного доступа является простота их создания и использования. При необходимости, файл последовательного доступа может быть создан или отредактирован любым текстовым редактором. Разделителем текста в файлах последовательного доступа является символ возврата каретки, который формируется автоматически при нажатии клавиши Enter.

Для работы с файлами данных используются команды открытия файла, закрытия файла, записи и чтения данных из файла, а также ряд функций, облегчающих работу с файлами.

Для открытия файлов служит команда Open.

Open “спецификация_файла” For {тип файла}[Access{доступ}] [Lock{блокировка}] As [#] N [Len=длина]

Опция “Спецификация_файла”, как известно, позволяет указать диск, маршрут, имя и расширение имени файла.

Например: R:\Prognoz\Ucheb\prognoz1.dan

Тип файла указывает на его структуру и способ использования и может принимать следующие значения:

Input – файл последовательного доступа, открыт для чтения; Output – файл последовательного доступа, открыт для записи;

Append – файл последовательного доступа, открыт для добавления данных; Bynary – двоичный файл открыт для записи и чтения данных:

Random – файл прямого доступа открыт для записи и чтения данных.

Так как пользователь при написании программы в принципе не может знать, сколько каналов занято и каков номер свободного канала, то для определения номера свободного канала следует использовать функцию FreeFile. Функция FreeFile возвращает номер свободного канала.

Для закрытия файлов используется команда Close. Синтаксис команды:

Close [# <номер канала>]

Команда Close с параметром номера канала закрывает указанный канал. Команда Close без параметров закрывает все открытые файлы. С целью надежного сохранения информации рекомендуетcя использовать вместо команды Close команду Reset. Эта команда, в отличие от команды Close, дает указание операционной системе сбросить содержимое буфера на диск.

Работа с файлами последовательного доступа состоит из двух самостоятельных операций: создания файла и использования файла.

89

Создание файла последовательного доступа:

1.Открытие файла ‘ (команда Open или Append c опцией Output).

2.Запись данных в файл (операторы Write # или Print #).

3.Закрытие файла ‘ (команда Close).

Чтение данных из файла последовательного доступа:

1.Открытие файла ‘ (команда Open c опцией Input).

2.Чтение данных из файла (оператор Input # или Line Input #).

3.Закрытие файла ‘ (команда Close).

Запись данных в файл последовательного доступа

Для записи данных в файл последовательного доступа используются операторы Print # и Write #.

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

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

Оператор Line Input # считывает из файла строку данных. Разделителем данных в файле в этом случае должен быть символ возврата каретки. Строка данных не должна превышать 255 символов.

Оператор Input # имеет следующий синтаксис:

Input # <номер канала>[, “текстовое сообщение”],<список переменных>

Переменные в списке разделяются запятыми. Пример 1. Создание файла последовательного доступа.

Open “R:Test.dan” For Output As #1

A$ = “Минск – столица Республики Беларусь”

B%=13875 С!=7.58

Print#1, A$, B%, Str$ (C!) Close #1

Пример 2. Использование файла последовательного доступа.

Open “R:Test.dan” For Input As #1 Input #1, A$, B%, C$

Print A$, B%, Val (C8) Close #1

На форме будет строка следующего вида: Минск – столица Республики Беларусь 13875 7.58 В данном примере 13875 и 7.58 – числа

Оператор Input # целесообразно использовать в сочетании с оператором

Write #.

90