Конспект лекций по программированию для начинающих. Гладков В.П. - 137 стр.

UptoLike

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

139
К элементам массива b можно обратиться так: b[-3], b[0], b[10]. Обращение b[i]
будет верным, если значение i изменяется от -7 до 12.
К элементам массива d можно обратиться так: d[i,j]. Здесь первый индекс
указывает номер строки, а второй - столбца. Первый индекс может изменяться от 1
до 3, а второй - от 1 до 6.
К элементам массивов e или f можно обратиться как e[3][7] или e[3,7] (f[3][7]
или f[3,7]),
причем вторая запись является сокращением первой. К третьей строке
этих массивов, как к одномерным массивам, можно обратиться так: e[3] (f[3]).
Первый индекс изменяется от 1 до 2·n (24), а второй - от 1 до n (12).
К элементу массивов g и h можно обратиться так: g[wed] (h[wed]), где значение
индекса изменяется от mon до fri.
Над массивами одного типа в Паскале можно выполнять операцию
присваивания
. При этом первый элемент массива, указанного в правой части
оператора присваивания, переписывается в первый элемент массива, указанного в
левой части оператора, второй - во второй элемент, третий - в третий и т.д.
Массивы считаются однотипными, если имеют тип с одним и тем же именем или
перечислены через запятую в строке, где
описаны они сами и их типы. В примерах
однотипными являются массивы: x,y,z; p,q,r,s; e,f; g,h. Следовательно, возможно
присваивание y:=z, что равносильно следующей последовательности операторов
присваивания: y[1]:=z[1]; y[2]:=z[2]; y[3]:=z[3]; y[4]:=z[4]; y[5]:=z[5]; y[6]:=z[6];
y[7]:=z[7]; y[8]:=z[8]; y[9]:=z[9]; y[10]:=z[10].
Возможно также присваивание a:=e[4], что вызовет перенос четвертой строки
массива e в массив a. Эта операция аналогична операции переименования
некоторых объектов. Например, по окончанию учебного года 7а класс
переименовывается в 8а. Это означает
, что первый по списку ученик 7а станет
первым по списку учеником 8а, второй - вторым, третий - третьим и т.д.
Остальные операции над массивами выполняются поэлементно. Перед
рассмотрением этих операций остановимся на ошибках, характерных при работе с
массивами:
1. Имя массива ошибочно используется в качестве имени другого данного в
программе.
2. Обращение
к элементу массива осуществляется со значением индекса,
выходящим за его границы. Эта ошибка встречается наиболее часто.
3. Указанные при описании массива в качестве верхней или нижней границы
индекса выражения могут быть вычислены только во время исполнения
программы, поэтому транслятор не может зарезервировать память для элементов
массива (точно также нельзя заказать автобусы
для экскурсии, если неизвестно
(хотя бы приблизительно) количество желающих принять в ней участие).
Использование массива в программе не всегда оправдано, потому что
обращение к элементу массива требует вначале вычисления значения индекса
(индексов). Только после этого осуществляется доступ собственно к элементу.
Имеются, по крайней мере, два случая когда необходимо применение
массива:
1. когда все данные должны быть представлены в памяти для обработки и
любое данное может потребоваться в любой момент (классическим примером
является задача сравнения всех элементов некоторой последовательности с ее
последним элементом);
                                        139

    К элементам массива b можно обратиться так: b[-3], b[0], b[10]. Обращение b[i]
будет верным, если значение i изменяется от -7 до 12.
    К элементам массива d можно обратиться так: d[i,j]. Здесь первый индекс
указывает номер строки, а второй - столбца. Первый индекс может изменяться от 1
до 3, а второй - от 1 до 6.
    К элементам массивов e или f можно обратиться как e[3][7] или e[3,7] (f[3][7]
или f[3,7]), причем вторая запись является сокращением первой. К третьей строке
этих массивов, как к одномерным массивам, можно обратиться так: e[3] (f[3]).
Первый индекс изменяется от 1 до 2·n (24), а второй - от 1 до n (12).
    К элементу массивов g и h можно обратиться так: g[wed] (h[wed]), где значение
индекса изменяется от mon до fri.
    Над массивами одного типа в Паскале можно выполнять операцию
присваивания. При этом первый элемент массива, указанного в правой части
оператора присваивания, переписывается в первый элемент массива, указанного в
левой части оператора, второй - во второй элемент, третий - в третий и т.д.
Массивы считаются однотипными, если имеют тип с одним и тем же именем или
перечислены через запятую в строке, где описаны они сами и их типы. В примерах
однотипными являются массивы: x,y,z; p,q,r,s; e,f; g,h. Следовательно, возможно
присваивание y:=z, что равносильно следующей последовательности операторов
присваивания: y[1]:=z[1]; y[2]:=z[2]; y[3]:=z[3]; y[4]:=z[4]; y[5]:=z[5]; y[6]:=z[6];
y[7]:=z[7]; y[8]:=z[8]; y[9]:=z[9]; y[10]:=z[10].
    Возможно также присваивание a:=e[4], что вызовет перенос четвертой строки
массива e в массив a. Эта операция аналогична операции переименования
некоторых объектов. Например, по окончанию учебного года 7а класс
переименовывается в 8а. Это означает, что первый по списку ученик 7а станет
первым по списку учеником 8а, второй - вторым, третий - третьим и т.д.
    Остальные операции над массивами выполняются поэлементно. Перед
рассмотрением этих операций остановимся на ошибках, характерных при работе с
массивами:
    1. Имя массива ошибочно используется в качестве имени другого данного в
программе.
    2. Обращение к элементу массива осуществляется со значением индекса,
выходящим за его границы. Эта ошибка встречается наиболее часто.
    3. Указанные при описании массива в качестве верхней или нижней границы
индекса выражения могут быть вычислены только во время исполнения
программы, поэтому транслятор не может зарезервировать память для элементов
массива (точно также нельзя заказать автобусы для экскурсии, если неизвестно
(хотя бы приблизительно) количество желающих принять в ней участие).
    Использование массива в программе не всегда оправдано, потому что
обращение к элементу массива требует вначале вычисления значения индекса
(индексов). Только после этого осуществляется доступ собственно к элементу.
Имеются, по крайней мере, два случая когда необходимо применение массива:
    1. когда все данные должны быть представлены в памяти для обработки и
любое данное может потребоваться в любой момент (классическим примером
является задача сравнения всех элементов некоторой последовательности с ее
последним элементом);