|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Типы и структуры данныхВ обработке данных понятие классификации играет крайне важную роль. Большинство языков программирования придерживаются того принципа, что любая константа, переменная, выражение или функция относится к некоторому типу. Как правило, используют понятие тип данных. Тип данных определяет: 1. формат представления данных в памяти компьютера; 2. множество допустимых значений, которые может принимать принадлежащая к выбранному типу переменная или константа; 3. множество допустимых операций, применимых к этому типу. В большинстве случаев новые типы данных определяются с помощью ранее определенных типов данных. Значения такого нового типа обычно представляют собой совокупности значений компонент, относящихся к определенным ранее составляющим типам, такие значения называются составными. Если имеется только один составляющий тип, т. е. все компоненты относятся к одному типу, то он называется базовым. В вычислительной технике структура данных – это программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих интерфейс структуры данных. Структура данных часто является реализацией какого-либо абстрактного типа данных. Все данные могут относиться только к одному из двух видов структур: статическим или динамическим структурам данных. Статические структуры данных создаются на этапе компиляции программы. Динамические структуры данных создаются во время выполнения программы, причем их размер и вид могут изменяться в процессе выполнения программы. Статические структуры данных. Простейшие типы данных Любой новый простейший тип определяется простым перечислением входящих в него различных значений. Такой тип называется перечисляемым. Его определение имеет следующий вид: enum T {c1, с2,...,сn}, где Т — идентификатор (имя) нового типа, a ci — идентификаторы новых констант.
Примеры: enumshape {rectangle, square, ellipse, circle}; enumcolor {red, yellow, green}; enumsex {male, female}; использование в программе: color cl; sex s; cl = green; s = male; Простейшие стандартные типы К стандартным простейшим типам относятся типы, имеющиеся (т.е. встроенные) на большинстве вычислительных машин. Сюда входят целые числа, логические значения и множество печатаемых символов. Массив Массив – структура данных. Массив состоит из компонент, причем все они одного типа, называемого базовым. Поэтому структура массивов однородна. При этом, массивы относят к структурам со случайным доступом. Для того чтобы обозначить отдельную компоненту, к имени всего массива добавляется индекс, который и выделяет нужную компоненту. Обычный прием работы с массивами – выборочное изменение отдельных его компонент, а не конструирование полностью нового составного значения. При этом переменная-массив рассматривается как массив составляющих переменных и возможно присваивание отдельным компонентам. Тот факт, что индексы массива, т. е. имена его компонент, должны относиться к определенному (скалярному) типу, имеет весьма важное следствие: индексы можно вычислять. На место индексирующей константы можно подставлять любое индексирующее выражение: оно будет вычислено, и результат идентифицирует требуемую компоненту. Запись Наиболее общий метод получения составных типов заключается в объединении элементов произвольных типов. Причем сами эти элементы могут быть в свою очередь составными. Приведем пример из математики: координаты точки, состоящие из двух или более чисел, - это зависит от размерности пространства, накрываемого данной системой координат. А вот пример из обработки данных: человек описывается с помощью нескольких подходящих характеристик вроде имени, фамилии, даты рождения, пола и семейного положения. к данным такой природы стало широко применяться слово запись (или структура). В общем случае структурный тип Т с компонентами Т1,Т2,..., Тп определяется следующим образом: struct T { Т1 s 1; Т2 s 2; .... Тn s n; }; Примеры: struct Date { unsigned short int Day[31]; unsigned short int month[12]; unsigned short int year[2100]; };
struct Person { string name; string firstname; Date birthdate; enumsex{male, female}; enummarstatus{single, married, widowed, divorced}; }; Чтобы получить в программе реальную запись, нужно создать переменную соответствующего типа: struct Person Friend; Идентификаторы s 1,s 2,...,s n,появляющиеся в определении записного типа, представляют собой имена, даваемые отдельным компонентам переменных данного типа. Поскольку компоненты записи называются полями, то эти имена называются идентификаторами полей. При работе с записями они используются в селекторах, применяемых к переменным-записям. Например, чтобы получить доступ к полям записи Friend, нужно записать: Friend.Name = "Alexander"; Friend.FirstName = "Ivanov"; Friend.Sex = "male"; Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например, Friend = BestFriend; После выполнения этого оператора значения полей записи Friend станут равными значениям соответствующих полей записи BestFriend. И записи, и массивы обладают одним общим свойством – случайным доступом к компонентам. Записи более универсальны в том смысле, что для них не требуется идентичности всех составляющих типов. В то же время массивы обеспечивают большую гибкость – селекторы компонент можно вычислять (это выражения), в отличие от селекторов для компонент записи, которые описываются в определении записного типа. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |