Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 1 курс / метод указания / Информатика. Основы программирования на С++. Учебное пособие.doc
Скачиваний:
150
Добавлен:
08.06.2015
Размер:
2.15 Mб
Скачать

5.Составление программ с массивами

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

Массив состоит из элементов, являющихся данными одного типа (возможно структурированного), имеетразмерность– количество элементов, которое содержит массив. Элементы массива имеютиндексы– порядковые номера, которые приписываются элементам для того, чтобы отличать их друг от друга.

5.1. Организация программ с массивами

Описание одномерного массива имеет следующий формат:

Тип имя_массива [n];

где n–размерность(количество элементов) массива является в общем случае константным выражением.

Такие одномерные массивы часто называютвекторами.

Например:

intdays[12]; //массивdaysиз 12 целых чисел

doublemass[50]; //массивmassиз 50 вещественных чисел

Для доступак элементу массива используется имя массива и его индекс в диапазоне от0доn-1, заключенный в квадратные скобки:

Имя_массива [индекс]

Например:

mass[0] = 37.5; . . .mass[49] = 36.6;

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

Например:

intdays[12] = {27,15,11,5,28,9,14,31,21,15,19,27};

Если список значений короче длины массива, то инициализации подвергаются первые элементы массива, а остальным присваивается нулевое значение.

Например:

int a[5] = {3,12,4}; //a[0]=3, a[1]=12, a[2]=4, a[3]=0, a[4]=0

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

Например:

intnumbers[ ] = {1,2,3,4}; //размерность равна четырем

В практических задачах часто используются двумерные массивы, т.е. массивы с двумя индексами. Они описываются следующим образом:

Тип имя_массива [размер_1] [размер_2]

С помощью таких массивов обычно отображаются матрицы.

Например:

const int k=5, r=3;

longm[k][k]; //матрица целых чисел размерности 5х5

floatd[k][r]; //матрица целых чисел размерности 5х3

Инициализация двумерного массива осуществляется двумя способами:

  1. представлением массива из массивов с заключением каждого массива-строки в свои фигурные скобки (в этом случае размерности можно не указывать);

  2. заданием общего списка элементов в том порядке, в котором они располагаются в памяти.

Например:

intmatr[ ][ ] = {{3,-4},{25,0},{-1,4}};

intmatr[3][2] = {3,-4,25,0,-1,4};

Как и в одномерных массивах при инициализации двухмерных массивов можно присваивать значения не всем элементам.

Пример. Формирование треугольной матрицы.

intx[5][4] = {{11},{25,4},{-3,18,14},{2,17,9,15}};

что эквивалентно отображению матрицы:

При работе с массивами широко используются операторы цикла, особенно, for. Примером может служить задачасортировкимассива с помощью "пузырькового" метода.

#include <iostream.h>

#include <math.h>

voidmain()

{

constintm=5; //Размерность массива чисел

doublez[m];//Тип чисел массива z

for(inti=0;i<m;i++)//Ввод элементов массива

{ cout<<"z["<<i<<"]=";cin>>z[i];}

for(inti=0;i<m-1;i++)//Начало алгоритма сортировки

{ double a;

for(int j=i+1;j<m;j++)

if(z[j]<z[i])//'<'- сортировка по возрастанию

{a=z[i];z[i]=z[j];z[j]=a;}

} //Конец алгоритма сортировки

cout<<"z["<<m<<"]={";

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

cout<<z[i]<<" ";cout<<"}";//Вывод элементов массива

}