Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 242

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

Чем является данная структура, какова математическая и прагматиче­ская сущность данной структуры?

Как она представляется в программе?

С точки зрения математики и прагматики можно дать следующее определе­ние.

Определение 7.2.4.Массив элементов типа Т с индексами из I — функция, перерабатывающая индексы в элементы, значения которой запоминаются при их первом вычислении и поэтому практически не требуют ресурсов для повторного вычисления. Конец определения 7.2.4.

Итак, массив — предвычисленная функция. В таком случае присваивание элементу массива — несколько неточное обозначение. Это на самом деле действие над всем массивом. Но, в соответствии с духом структурного про­граммирования, в котором действия локальны, можно не акцентировать вни­мание на данном обстоятельстве, хорошо разобранном, в частности, в книге Гриса [27].

Вторая сторона структуры данных —как ее представляют. Для нас, прак­тически, неважно, что массив обычно занимает в памяти связный сегмент; важно, что он размещается в памяти и что операция вычисления элемента массива по его индексу очень быстрая. Линейное расположение элементов массива — всего лишь один из способов обеспечить эти требования. Ограни­чения, накладываемые традиционной реализацией, заложенной в стандарты большинства языков, привели к тому, что в большинстве языков массив вос­принимается как функция из статически заданного линейно упорядоченного

множества индексов. Поэтому естественная конструкция типа

Подобные возможности предоставляют Algol 60 и Алгол 68. Массивы, размер которых вычисляется и фиксируется в момент исполнения их описа­ния, получили название динамических массивов, в отличие от статических массивов языков Pascalи С. Но в ряде случаев в момент исполнения опи­сания массива мы еще не знаем, какого размера память будет требоваться, и тогда хотелось бы иметь возможность наращивать массив по мере необхо­димости, а также отказываться от памяти. В Алголе 68 подобные массивы называются гибкими или подвижными (flexible).

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама