АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Типы и структуры данных

Читайте также:
  1. II. Расчет силы сопротивления движению поезда на каждом элементе профиля пути для всех заданных скоростях движения.
  2. IV. Расчет механической мощности, реализуемой электровозом при движении с установившимися скоростями на заданных элементах профиля пути.
  3. VI. Загрузка данных на внешние носители
  4. VI. Расчет токов, потребляемых электровозом из контактной сети при движении на заданных участках пути.
  5. Администратор баз данных
  6. АМТХАУЭРА ИНТЕЛЛЕКТА СТРУКТУРЫ ТЕСТ
  7. Анализ ассортимента, структуры и номенклатуры выпуска продукции
  8. Анализ данных
  9. Анализ данных (для гипотезы 1)
  10. Анализ данных (для гипотезы 2)
  11. Анализ данных.
  12. Анализ динамики и структуры активов и пассивов организации

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

Тип данных определяет:

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;

Простейшие стандартные типы

К стандартным простейшим типам относятся типы, имеющиеся (т.е. встроенные) на большинстве вычислительных машин. Сюда входят целые числа, логические значения и множество печатаемых символов.

Массив

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

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

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

Запись

Наиболее общий метод получения составных типов заключается в объединении элементов произвольных типов. Причем сами эти элементы могут быть в свою очередь составными. Приведем пример из математики: координаты точки, состоящие из двух или более чисел, - это зависит от размерности пространства, накрываемого данной системой координат. А вот пример из обработки данных: человек описывается с помощью нескольких подходящих характеристик вроде имени, фамилии, даты рождения, пола и семейного положения. к данным такой природы стало широко применяться слово запись (или структура).

В общем случае структурный тип Т с компонентами Т12,..., Тп определяется следующим образом:

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.

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


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)