Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2 New1.doc
Скачиваний:
4
Добавлен:
17.08.2019
Размер:
100.86 Кб
Скачать

Массивы

Массив — основа для хранения однородных данных.

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

Синтаксис описания массива:

тип_массива имя_переменной [ число_элементов ] ;

Например, вместо того, чтобы описывать пять переменных:

int xl , х2, х3, х4, х5;

можно записать:

int х[5] ;

При этом в переменной х хранится не одно значение, а последовательность из 5 значений типа int - компилятор выделит память для массива следующим образом (рис.1):

x[0] x[1] x[2] x[3] x[4]

baseAddr baseAddr + 4 baseAddr + 8 baseAddr + 12 baseAddr + 16

(Рис.1)Распределение памяти для массива из пяти чисел типа int.

К каждому значению можно обращаться, указывая его номер (индекс), который может быть не только числовой константой, но и любым допустимым выражением Си++, возвращающим значение типа int. В Си++ принято, что нумерация переменных начинается с нуля. То есть первый элемент имеет индекс 0, второй — индекс 1, пятый — индекс 4.

После объявления массива можно заполнить его числами, используя индексный оператор [] :

x[0]=-200; x[1]=-100; x[2]=0; x[3]=100; x[4]=200;

Массив можно объявить и заполнить одновременно:

int x[5] = {-200, -100, 0, 100, 200};

Чтобы получить значение первого элемента массива х, надо записать:

х[0]

Можно обращаться к элементам и используя переменную:

i = 3;

x[0] = x[i] + x[i+l]; // x[0]=300

Размер массива

Размер массива в Си++ определяется заранее и указывается конкретным числом или константой. В отличие от индексов, в качестве которых может выступать любое выражение, размер массива на протяжении работы программы неизменен. Нельзя написать:

len = 20;

int x[len] ; // неправильно!

Компилятор сразу сообщит об ошибке — «Constant expression required» (требуется константа).

Массивы, размер которых задается в программе заранее и в дальнейшем не изменяется, называются статическими. В Си++ можно также использовать и динамические массивы, размеры которых во время работы программы могут меняться, но для этого надо с помощью специальных операторов запрашивать у Windows память, потом освобождать ее и самому следить за корректностью ее использования. Это обычно требуется в основном для задач, где надо обрабатывать большие, но часто меняющиеся по размеру объемы информации.

Массивы могут иметь более одного измерения..

Задание №3. Задать матрицу из шести элементов в виде Х(2×3) – две строки и три столбца и с теми же элементами, но в виде Х(3×2) - три строки и два столбца, значения элементам затать: 2,3,8,5,4,7. В обоих случаях выдать элементы со значениями 3 и 4.

#include <vcl.h>

#include <iostream.h>

#include <conio.h>

int main(int argc, char* argv[])

{int x[2][3]= {2,3,8,5,4,7}; // 2- строки, 3- столбца

int y[3][2]= {2,3,8,5,4,3}; // 3- строки, 2- столбца

cout << "x[0][1] (3) =" << x[0][1] << endl; // счет идет с нуля

cout << "x[1][1] (4) =" << x[1][1] << endl;

cout << "x[0][1] (3) =" << x[0][1] << endl; //// для аналогичного результата

cout << "x[2][0] (4) =" << x[2][0] << endl;

getch();

return 0;

}