Мегаобучалка Главная | О нас | Обратная связь


Специфические типы массивов



2020-02-03 205 Обсуждений (0)
Специфические типы массивов 0.00 из 5.00 0 оценок




Содержание

 

Введение

1. Теоретическая часть

1.1 Общее понятие о массивах

1.1.1 Определение и область применения

1.1.2 Специфические типы массивов

1.1.3 Реализация массивов

1.1.4 Достоинства массивов

1.1.5 Недостатки массивов

1.2 Массивы в Object Pascal

1.2.1 Статические массивы

1.2.2 Динамические массивы

1.2.3 Функции для работы с массивами

1.3 Использование массивов в рамках проекта

2. Практическая часть

2.1 Постановка задачи

2.2 Функциональная структура приложения

2.3 Описание модулей

2.3.1 Модуль MatrixOperations

2.3.2 Модуль fileIO

2.4 Модуль form

3. Эксплуатационная документация

3.1 Описание применения

3.2 Руководство оператора

Выводы

Приложения

 


Введение

 

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

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

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

 


Теоретическая часть

Общее понятие о массивах

Определение и область применения

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

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

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

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

 

Специфические типы массивов

Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. Обычные, не динамические массивы называют ещё статическими.

Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Отсутствие их поддержки в языке программирования приводит к необходимости реализации более сложных схем хранения данных. С другой стороны, реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка.

Многомерные массивы, как правило, реализованные как одномерные массивы, каждый элемент которых является ссылкой на другой одномерный массив.

 

Реализация массивов

Стандартным способом реализации статических массивов с одним типом элементов является следующий:

Под массив выделяется непрерывный блок памяти объёмом

 

S*m1*m2*m3…mn,

 

где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс).

При обращении к элементу массива A[i1, i2, i3, … in] адрес соответствующего элемента вычисляется как

 

B+S*(i1p*m1+i2p*m2+…+i(n-1)p*mn-1+inp),

 

где B — база (адрес начала блока памяти массива), ikp-значение k-го индекса, приведённое к целому с нулевым начальным смещением.

Таким образом, адрес элемента с заданным набором индексов вычисляется так, что время доступа ко всем элементам массива одинаково. Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based) и с отсчетом от специфического значения заданного программистом (n-based).

Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых языков программирования, однако этот метод был популяризирован в языках более высокого уровня языком программирования С.

Более сложные типы массивов — динамические и гетерогенные — реализуются сложнее.

Достоинства массивов

· Быстрый доступ к элементам, причём время доступа не зависит от длины массива

· Элементы расположены в памяти непосредственно друг за другом, что облегчает копирование и перемещение всего массива целиком

· Отсутствие необходимости в дополнительной памяти

 

Недостатки массивов

· для статического массива — отсутствие динамики, невозможность удаления или добавления элемента без сдвига других

· для динамического и/или гетерогенного массива — более низкое (по сравнению со статическим) быстродействие и дополнительные накладные расходы на поддержку динамических свойств и/или гетерогенности.

· при работе с массивом в отсутствие дополнительных средств контроля — угроза выхода за границы массива и повреждения «чужих» данных

 



2020-02-03 205 Обсуждений (0)
Специфические типы массивов 0.00 из 5.00 0 оценок









Обсуждение в статье: Специфические типы массивов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (205)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)