Основы алгоритмизации и программирования. Часть вторая. Типовые алгоритмы обработки массивов. Асламова В.С - 4 стр.

UptoLike

Составители: 

7
Регулярные типы
Каждое значение регулярного типа состоит из фиксированного
числа элементов одного и того же базового типа. Такой способ
образования новых значений (фиксированное значение однотипных
компонент) позволяет обозначать значения этих типов одним (групповым)
именем, а доступ к отдельным элементам массивов организовать
посредством указания этого группового имени и порядкового номера
(индекса) необходимого элемента.
Массивы бывают одн
омерными и многомерными (матрицы). Для
корректного определения типа необходимо использовать
зарезервированное слово
array, после которого следует в квадратных
скобках тип индекса (индексов) компонент и далее после слова
ofтип
самих компонент.
В качестве типа индекса может выступать любой дискретный тип,
кроме longint и ограниченных типов, построенных из типа longint. В
частности допустимы перечисляемые и ограниченные типы. Элементами
массива могут быть значения любого типа.
A
rra
y
[ Тип индекса ]
Of Тип элементов
,
;
Рисунок 2. Регулярный тип
В языке Turbo Pascal количество элементов должно быть
фиксировано, то есть определяться при трансляции программы. Другими
словами, нет динамического распределения памяти. Это считается
определенным недостатком языка Turbo Pascal, так как не во всех
программах можно заранее предсказать необходимый размер массива.
Для задания количества элементов массива используется тип. Число
элементов определяется количеством возможных зн
ачений указанного
типа. В языке Turbo Pascal можнонумеровать элементы массива не
только целыми числами, но и значениями произвольного дискретного
типа.
В качестве элементов массива могут выступать значения любого
типа. В частности, ими могут быть значения любых составных типов,
например:
8
Var
V : array[1 . . 10] of array[1 . . 20] of byte;
Такую переменную можно трактовать двояко: как массив,
состоящий из нескольких массивов, либо как один двумерный массив
(матрица). Для сокращения записи в подобных случаях можно
использовать эквивалентную форму определения регулярных типов, где в
квадратных скобках указывается список типов индексов, разделенных
запятыми, например:
Var
V : array[1 . . 10 , 1 . . 20] of byte;
Число индексов в определении (то есть размерность массива) в
языке не ограничивается.
При работе с массивами необходимо помнить об ограничении на
размер общей памяти под переменные, чаще всего предел в 64 Kb
(65520 b) бывает превышен из-за ошибочного описания массивов (либо
состоящих из чрезмерного числа элементов, либо больших размеров этих
элементов).
В языке Turbo Pascal имеется по
нятие упакованного массива.
Элементы такогоупакованногомассива хранятся в памяти максимально
плотно, пусть даже в ущерб времени доступа к ним. Для задания таких
массивов используется служебное слово
packed, указываемое перед
словом
array:
Type
MyVec = packed array[1 . . 20] of real;
В целях совместимости с другими реализациями, Turbo Pascal
допускает такую форму записи, однако она никак не влияет на способ
хранения массива, так как в любом случае компилятор обеспечивает
наиболее компактное размещение элементов в памяти при достаточно
высокой эффективности доступа к ним.
В языке Turbo Pascal допускается единственно возможное действие
над массивом в целом: это использование его в операторе пр
исваивания,
например:
MyVec1 := MyVec2;
Типы обоих массивов в данном случае должны быть эквивалентны.
                                                                         Var
                       Регулярные типы                                         V : array[1 . . 10]       of     array[1 . . 20]      of byte;
                                                                               Такую переменную можно трактовать двояко: как массив,
      Каждое значение регулярного типа состоит из фиксированного
                                                                         состоящий из нескольких массивов, либо как один двумерный массив
числа элементов одного и того же базового типа. Такой способ
                                                                         (матрица). Для сокращения записи в подобных случаях можно
образования новых значений (фиксированное значение однотипных
                                                                         использовать эквивалентную форму определения регулярных типов, где в
компонент) позволяет обозначать значения этих типов одним (групповым)
                                                                         квадратных скобках указывается список типов индексов, разделенных
именем, а доступ к отдельным элементам массивов организовать
                                                                         запятыми, например:
посредством указания этого группового имени и порядкового номера
(индекса) необходимого элемента.                                         Var
      Массивы бывают одномерными и многомерными (матрицы). Для                 V : array[1 . . 10    ,        1 . . 20]   of byte;
корректного     определения     типа    необходимо      использовать           Число индексов в определении (то есть размерность массива) в
зарезервированное слово array, после которого следует в квадратных       языке не ограничивается.
скобках тип индекса (индексов) компонент и далее после слова of – тип
самих компонент.                                                               При работе с массивами необходимо помнить об ограничении на
                                                                         размер общей памяти под переменные, чаще всего предел в 64 Kb
      В качестве типа индекса может выступать любой дискретный тип,      (65520 b) бывает превышен из-за ошибочного описания массивов (либо
кроме longint и ограниченных типов, построенных из типа longint. В       состоящих из чрезмерного числа элементов, либо больших размеров этих
частности допустимы перечисляемые и ограниченные типы. Элементами        элементов).
массива могут быть значения любого типа.
                                                                               В языке Turbo Pascal имеется понятие упакованного массива.
      Array        [    Тип индекса   ]    Of   Тип элементов   ;        Элементы такого “упакованного” массива хранятся в памяти максимально
                                                                         плотно, пусть даже в ущерб времени доступа к ним. Для задания таких
                             ,                                           массивов используется служебное слово packed, указываемое перед
Рисунок 2. Регулярный тип                                                словом array:
                                                                         Type
      В языке Turbo Pascal количество элементов должно быть
фиксировано, то есть определяться при трансляции программы. Другими            MyVec = packed array[1 . . 20] of real;
словами, нет динамического распределения памяти. Это считается                 В целях совместимости с другими реализациями, Turbo Pascal
определенным недостатком языка Turbo Pascal, так как не во всех          допускает такую форму записи, однако она никак не влияет на способ
программах можно заранее предсказать необходимый размер массива.         хранения массива, так как в любом случае компилятор обеспечивает
      Для задания количества элементов массива используется тип. Число   наиболее компактное размещение элементов в памяти при достаточно
                                                                         высокой эффективности доступа к ним.
элементов определяется количеством возможных значений указанного
типа. В языке Turbo Pascal можно “нумеровать” элементы массива не              В языке Turbo Pascal допускается единственно возможное действие
только целыми числами, но и значениями произвольного дискретного         над массивом в целом: это использование его в операторе присваивания,
                                                                         например:
типа.
                                                                               MyVec1 := MyVec2;
      В качестве элементов массива могут выступать значения любого
                                                                                 Типы обоих массивов в данном случае должны быть эквивалентны.
типа. В частности, ими могут быть значения любых составных типов,
например:

                                                                    7    8