Глава 2. Типы структурированных данных. Статические и динамические типы данных. Файловая структура

 

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

Информация, поступающая в машину, состоит из определенного множества данных, относящихся к какой-то проблеме - это именно те данные, которые считаются относящимися к данной задаче и из которых можно получить требуемый ответ. Мы говорим о данных как об абстрактном представлении реалий, поскольку некоторые свойства и характеристики объектов при этом игнорируются. Считается, что для конкретной задачи они не являются существенными, определяющими. Поэтому абстрагирование - это упрощение фактов.

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

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

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

В настоящее время пользователи ЭВМ подразделяют данные, необходимые для решения практических задач , на несколько типов, связывая понятие типа не только с представлением данных в адресном пространстве, но и со способами их обработки.