МАССИВЫ Структурные типы данных В тех случаях, когда какой-либо объект описывается рядом однотипных значений (например, ежедневное количество осадков на протяжении года, показатели достижений спортсмена за сезон, оценки экзаменационной сессии группы по ряду предметов), используют не множество переменных простых типов, а структуры данных, в частности, массивы.
Определение Массив это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Структуры данных характеризуются такими свойствами, как упорядоченность (указан ли порядок следования элементов, пронумерованы ли они каким-либо образом), однородность (содержит ли структура величины одного или разных типов), ограниченность (фиксировано ли количество элементов), способ доступа. По указанным выше свойствам массивы относятся к упорядоченным однородным ограниченным структурам с произвольным доступом к элементам структуры.
Элементы массива Величины, составляющие массив, располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом (номером). Каждое из значений, входящих в массив, называется его компонентой (или элементом массива). Элементами массива могут быть величины как простых, так и составных типов. Чаще всего индекс в обозначении компонент массивов может быть константой, переменной или выражением целого типа (хотя возможны и другие варианты). Например: В[4]Z[k]FF[2,6]G4[2*j+i,k]
Размерность массива Если местоположение элемента в массиве определяет только один его порядковый номер, то такой массив называется линейным. Вообще количество индексов элементов массива определяет размерность массива. По этому признаку массивы делятся на одномерные (линейные), двухмерные (прямоугольные таблицы или матрицы), трехмерные и т.д. линейнымодномерныедвухмерные
Размер массива Размер массива определяется количеством его элементов. Размер может быть общим и текущим. Довольно часто память выделяется под весь массив сразу же, но при этом не вся она может быть занята элементами, т.е. текущий размер меньше или равен общему.
Описание массивов Практически все языки программирования высокого уровня требуют явного описания массивов. Приведем пример описания линейного массива. var A: array[0..99] of integer; Можно определить, какой объем оперативной памяти потребуется для хранения элементов массива. Для этого нужно общий размер массива умножить на объем памяти, занимаемой одной величиной базового для массива типа. В нашем примере это 100 х 2 = 200 байт.
I способ Var P: array [1..8] of тип; F: array [1..3,1..6] of тип; II способ Const n=8;m=6;k=3; Var P: array [1..n] of тип; F: array [1..k,1..m] of тип;
III способ Const n=8;m=6;k=3; type ms = array [1..n] of тип; ms_dv = array [1..k,1..m] of тип; Var P: ms; F: ms_dv;
Заполнение массива с клавиатуры program Vvod; var N, I: integer; A: array [1..100] of integer; begin write('Количество элементов массива? '); readln(N) ; for I := 1 to N do begin write ('Введите A [ ', I, ' ] '); readln(A[I]) end end.
Заполнение массива таким образом, чтобы все его элементы были различны. program create; type Mas = array[0..99] of integer; var A: Mas; i, j, N: byte; Log: boolean; begin write('Количество элементов массива?: '); readLn(N); randomize; A[0] := random(2001); for i := 1 to N do repeat Log := true; A[i] := random(2001); j := 1; while Log and (j < = i 1) do begin if A[i]=A[j] then log:=false; j := j + 1; end ; until Log; for i := 1 to N do write(A[i]:7); writeln end.
Одномерный массив Наглядно представить одномерный массив можно как линейную таблицу, которая имеет имя (имя массива F), а каждая ячейка таблицы свой номер (индекс элемента) и значение (содержимое ячейки) F Номера элементов Значения элементов Элемент одномерного массива обозначают именем массива и его порядковым номером в нем. Например: F[5]F[n]F[j+3]
Двумерный массив При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двухмерным массивом, или двухмерной таблицей. При описании массива задается требуемый объем памяти под двухмерный массив, указываются имя массива и в квадратных скобках диапазоны изменения индексов. var P: array[1..3, 1..6] of integer; Наглядно представить такую таблицу
Наглядное представление двухмерного массива P Номера элементов по столбцам Значения элементов Обозначить элемент двухмерного массива - это значит указать имя массива и два индекса, первый из которых - номер строки, второй - номер столбца Номера элементов по строкам Например: P[2, 1]P[i, j]P[j-1, 2*j+1]
Задачи 1. Сформировать массив,записав в него 20 чисел Фибоначчи. 2. Сформировать таблицу Пифагора 10 х 10, распечатать ее. 3. Сформировать массив из n элементов с ГСЧ (интервал [A,B], при A<B. Найти: а) среднее значение среди всех элементов; б) среднее значение среди элементов от номера k до m; в) сумму элементов массива кратных 5 и их количество; г) произведение элементов, номера которых кратны 5; д) минимальный, максимальный и их индексы; 4. Поместить минимальный на 1-ю позицию, а первый и все за ним следом стоящие сдвинуть вправо на одну позицию, так сдвигать до позиции минимального; 5. Упорядочить элементы массива по возрастанию, убыванию
Вопросы 1. Что такое массив? 2. Какой массив называют одномерным? 3. Какие имена допустимы для обозначения массива? 4. Что такое размерность массива? 5. Приведите два способа описания одномерного массива 6. Что происходит, когда транслятор обрабатывает описание массива? 7. Что такое индекс массива? 8. Указать элемент массива – что это значит? 9. Как можно задать значение элемента массива? 10. Как обозначить элемент одномерного массива? 11. Как организовать распечатку массива? 12. Как описать двумерный массив? 13. Как обозначить элемент двумерного массива? 14. Что означает первый индекс в записи S[6,8]? 15. Что означает второй индекс в записи S[6,8]?