Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование4172 / Лекции / Лекция 7. Обработка массивов.doc
Скачиваний:
50
Добавлен:
12.03.2015
Размер:
79.87 Кб
Скачать

Лекция 7. Обработка массивов Массивы

Массив - упорядоченная последовательность пронумерованных элементов одинакового типа.

Индекс - номер элемента массива. Индексы элементов массива начинаются с нуля. Элемент массива может иметь несколько индексов. Размерность массива - количество индексов каждого элемента.

Вектор - одномерный массив (один индекс).

Матрица – двумерный массив (первый индекс - номер строки, второй - номер столбца).

Объявление массива

При объявлении одномерного массива в квадратных скобках задается размер массива – количество его элементов (не путать с размерностью массива – количеством индексов). Размер массива должен быть известен при компиляции, т.е. не может быть переменной величиной. Поэтому в качестве размера можно указывать только целочисленную константу. При объявлении двумерных массивов в первых квадратных скобках задается число строк матрицы, а во вторых скобках – число столбцов. Например:

float x[50]; /* вещественный вектор x */

char st[80]; /* символьный вектор st */

int w[5][10]; /* целочисленная матрица w из 5 строк и

10 столбцов, всего 5*10 = 50 элементов. */

Элемент массива является переменной, тип которой указан в объявлении массива. Элемент массива обозначается именем массива, за которым в квадратных скобках указываются индексы элемента (индексация начинается с нуля).

x[0], x[1], ... x[49] – элементы массива x, вещественные переменные;

st[0], st[1], ... st[79] - символьные переменные, st - текст из 80 символов.

Элементы матрицы размещаются в памяти строка за строкой в следующем порядке:

w[0][0], w[0][1], ... , w[0][9],

w[1][0], w[1][1], ... , w[1][9],

. . .

w[4][0], w[4][1], ... , w[4][9].

Размер массива чаще задается именованной константой, в этом случае для изменения размера достаточно изменить значение константы только в одном месте.

В следующем примере объявлен вещественный массив, размером до 50 элементов:

#define N 50 /* максимальный размер массива 20*/

float x [N];

Фактическое количество обрабатываемых элементов n обычно вводится при выполнении программы:

int n; /* количество элементов */

scanf (“%d”, &n);

/* ввод элементов массива */

for (int i = 0; i < n; i++)

scanf (“%f”, &x[i]);

Элементу массива можно присваивать значение, использовать в качестве операнда в выражении и т. д.

Основное свойство массива: все элементы одновременно присутствуют в оперативной памяти, одинаково доступны и могут обрабатываться в любом порядке.

При объявлении массива можно задавать начальные значения его элементов.

float z[10] = { 2.5, 2, 3.5 };

/* z[0]=2.5, z[1]=2, z[2]=3.5, остальные элементы равны 0 */

int m[ ] = { 2, 3, 2 };

/* Количество элементов массива = количеству заданных значений */

int m1[10 ] = { 0 }; /* все элементы равны 0 */

char t[ ] = "KGTU";

/* Эквивалентно 'K', 'G', 'T', 'U', '\0' */

Начальное значение символьного массива можно задавать не поэлементно, а в виде строки символов, т.е. в виде строковой константы. Строковая константа завершается нуль-символом '\0'.

int k[2][2] = { {10, 10}, {25, 25}, {5, 5}, {15,15} } ;

/* Эквивалентно {10, 10, 25, 25, 5, 5, 15, 15} */