Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_infa.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
636 Кб
Скачать

Вопрос 19. Регулярные структурированные типы. Одномерные массивы. Примеры работы с одномерными массивами (инвертирование массива относительно центрального элемента, относительно к-го элемента)

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

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

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

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

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

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

  • регулярный тип (массивы);

  • комбинированный тип (записи);

  • файловый тип (файлы);

  • множественный тип (множества);

  • строковый тип (строки);

  • объектный тип (объекты).

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

Мы рассмотрим самый традиционный и широко известный из структурированных типов данных - массив (иначе называемый регулярным типом) – однородная упорядоченная статическая структура прямого доступа.

Один из вариантов организации последовательностей данных в оперативной памяти – массив –структурированный тип для резервирования в памяти места под определенное количество однородных элементов.

Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива.  Другими словами: конечная именованная последовательность однотипных величин в оперативной памяти называется массивом.

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

Инвертирование массива относительно центра:

void invert (int *w; int p)

{ int b;

for (i=0; i<n/2; i++)

{ b=w[i];

w[i]=w[p-i-1];

w[p-i-1]=b; }}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]