Определение алгоритма преобразования данных

Определение способа хранения данных

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

Файл прямого доступа состоит из записей фиксированной длины. Запись может быть сплошной или разделенной на части – поля. Для помещения в файл многокомпонентной записи язык Visual Basic позволяет использовать сложный тип данных, определяемый пользователем. Доступ к каждой записи возможен непосредственно без обработки других записей. При обработке файла прямого доступа возможна как запись, так и чтение данных через один и тот же буфер. В такой файл можно, например, занести данные типа "Student", описанные в 3.1. Поиск данных в таких файлах достаточно удобен, но даже пустая запись имеет ту же длину, что и полностью заполненная.

Файл последовательного доступа предусматривает возможность использования записей произвольной длины. Запись может состоять из одного или из нескольких компонентов. Буфер файла последовательного доступа может использоваться только для записи или только для чтения данных. Обработка любой записи предполагает хотя бы формальную обработку всех предшествующих записей. Например, для чтения 100-й записи придется прочитать 99 предшествующих. Файл достаточно компактен, но поиск данных в таком файле несколько затруднен.

Какой файл выбрать? Если в файле хранится база данных и предполагается вставка и удаление записей, то лучше использовать файл прямого доступа. Если предполагается хранение данных в целях переписи их всех в ОЗУ, то проще использовать файл последовательного доступа.

После того, как определены наборы входных, выходных и промежуточных данных необходимо описать процесс преобразования входных данных в выходные. Этот процесс удобно описать комбинацией таблицы с формулами и Р-графа. Таблица формул имеет столбцы "Имена данных", "Обозначение формулы", "Вид формулы".

Имена данных берутся из таблицы описания наборов данных. Обозначения формул – произвольные последовательности символов, например "А=Ф1" или "А<-Т5", но лучше в обозначения формул вкладывать какой-нибудь смысл, например, указание на выполняемую операцию. Приведенные выше обозначения можно расшифровать как "А вычисляется по формуле Ф1" или "Т5 преобразуется в А" соответственно. Способ создания обозначения непринципиален, самое главное, чтобы разные действия не обозначались одинаково или одни и те же действия не были описаны дважды.

При написании формулы в столбце "Вид формулы" необходимо учитывать возможность определения одних и тех же величин по разным выражениям в зависимости от способа ввода (с клавиатуры или из файла). В этом случае одному и тому же идентификатору данных соответствует две строчки таблицы формул. Например, численная величина А вводится с клавиатуры через окно ввода ТВ1 (Text Box) или из файла. В первом случае приходится применять формулу "А=Val(TB1.Text)" (т.е. преобразовывать полученные текстовые данные в число). Во втором – величина А может быть прочитана непосредственно из файла.

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

· проследить отсутствие тупиковых ситуаций, в которых программа "не знает, что ей делать",

· проследить отсутствие ситуаций "неполных данных" – ситуаций в которых делается попытка оперировать с неопределенными данными,

· обнаружить нерациональные действия,

· обнаружить места возникновения возможных ошибок выполнения программы, например, попытки деления на ноль.

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