Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Базовые операции обработки одномерных массивов




Произведение количества элементов массива на размер одного элемента в байтах.

Размер оперативной памяти определяется при объявлении одномерного массива и не изменяется во время работы с ним.

Элементы массива хранятся в последовательно размещенных ячейках оперативной памяти.

Примеры

Массив из 100 компонентов действительного типа:

var b: array [ 1..100 ] of real;

 

Вектор, компоненты которого представляют собой численность населения города Одессы в отдельные года. Нумерацию компонент удобнее начинать с целого числа 1794 – года основания Одессы.

 

var Odessa: array [ 1794..2012 ] of integer;

 

Численность населения города Рим до нашей эры. Вектор с нумерацией компонентов от минус 754 (года основания Рима) до минус 1 (последнего года до нашей эры):

var Rome: array [ –754..–1 ] of integer;

 

type border = 1..100;

vector = array [ border ] of real;

var b: vector:

 

const a: array [ 1..5 ] of byte = (0, 1, 2, 3, 4);

type vector = array [ 1.. 100 ] of real;

var b: vector:

Day: array [ 1..365 ] of real;

 

При объявлении массивов удобно использовать именованные константы, например:

const n =365; m = 100;

type vector = array [ 1.. m ] of real;

var b: vector;

Day: array [ 1..n ] of real;

 

Day Day1 Day2 Day3 Day4 ... Day364 Day365
  –––––––––––––––––––®  
  Направление увеличения адресов памяти  

Следует помнить: объем памяти, которая выделенна для хранения всех объявленных в разделах var переменных не должен превышать 2 Гб для OP Delphi 6 (для Turbo Pascal – 64 Кбайт).

 

Поэтому есть ограничения на количество элементов массива.

Объем памяти можно рассчитать:

Ошибка:

var b:array [Integer] of real;

 

var b:array [LongWord] of byte;

 

var b:array [longint] of byte;

 

[Error]: Data type too large: exceeds 2 GB

 

Но верно: var b:array [byte] of real;

//256 элементов ´8 байт = 2048 байт


Выводы:

Основные свойства массивов (они присущи как одномерным так и многомерным массивам):

Ø однородность – все элементы принадлежат одному типу;

Ø постоянство – размерность массива задается во время его объявления и не изменяется на протяжении работы с ним;

Ø равнодоступность – способ доступа ко всем элементам одинаков;

Ø последовательность расположения – все элементы массива расположены в последовательных ячейках оперативной памяти;

Ø индексированость – элементы однозначно идентифицируются своими индексами;

Ø упорядоченность индекса – индексный тип должен быть порядковым типом.


 

 

Двумя простейшими операциями, выполняемыми над элементами одномерного массива, являются выбор определенного элемента и изменение его значения.

 

Чтобы обратиться в программе к элементу массива, надо указать имя массива и номер элемента (индекс) в квадратных скобках, т.е.:

имя [индекс]

Эта операция называется индексированием [ ].

 

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

 

Изменить значение элемента массива возможно при помощи операции присваивания:

{Первому элементу массива Day присваивается значение 20.5}

Day[1]:= 20.5;

{245-му элементу массива Day присваивается значение –17}

 

Day[245]:= –17;

{Элементу массива b с номером i присваивается значение –3}

b[i]:= –3;

{но переменная i должна быть порядкового типа и определенна до ее использования}

 

Изменить значение элемента массива возможно при помощи операции ввода данных:

readln(Day[1]);

{В первый элемент массива Day считывается новое значение}

 

К элементам массива можно применять все операции, определенные для базового типа.

Например:

Day[1] > Day[245]

S:= Day[1]+ Day[245];

//переменная S должна быть типа real

 


 

Типичными операции при работе с одномерными массивами:

§ ввод или инициализация массива;

§ вывод массива;

§ копирование массива;

§ поиск максимального или минимального элемента массива;

§ поиск заданного элемента (в неупорядоченном и в упорядоченном массиве);

§ вычисление обобщенных характеристик – сумм элементов, их произведений (условное и безусловное);

§ подсчет элементов, которые удовлетворяют заданному условию;

§ вставка и удаление элемента;

§ перестановка элементов (обмен значениями между элементами массива, циклический сдвиг);

§ сортировка массива.


 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 1357; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.