Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Многомерные массивы

Если одномерный массив представляет собой список значений, то многомерный массив используется для представления данных в виде таблиц. Наиболее общий случай применения таблиц – двумерные таблицы. Чтобы определить отдельный двоичный элемент, нужно указать два индекса: первый указывает номер строки, а второй указывает номер столбца. Многомерный массив может иметь более двух индексов. Компиляторы С++ поддерживают 12-мерные массивы. В С++ объявление двумерного массива осуществляется следующим образом:

int name[3][4]; // Резервирование памяти для двумерной таблицы.

int cube [10][20][30] // Резервирование памяти для трёхмерного массива. Рисунок иллюстрирует двумерный массив name[3][4]. Каждый элемент в массиве name определяется именем элемента name[i][j], где i и j – индексы, однозначно определяющие каждый элемент массива name.

  Столбец 0 Столбец 1 Столбец 2 Столбец 3
Строка 0 name[0][0] name[0][1] name[0][2] name[0][3]
Строка 1 name[1][0] name[1][1] name[1][2] name[1][3]
Строка 2 name[2][0] name[2][1] name[2][2] name[2][3]

Рис. Двумерный массив с тремя строками и четырьмя столбцами.

Элементы многомерных массивов запоминаются в памяти ЭВМ строками.

Инициализация многомерных массивов осуществляется при помощи фигурных скобок.

int table1 [5]={8,5,3,25,41}; // Инициализация одномерного массива.

int table2[2][4]= {

{4,3,5,6},

{1,2,3,4} // Инициализация двумерного массива

};

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

int b[2][2]={{1},{3,4}};

будет означать, что b[0][0] получает начальное значение 1, b[0][1] получает начальное значение 0, b[1][0] получает начальное значение 3 и b[1][1] получает начальное значение 4.

Пример: Дана целая квадратная матрица. Построить по ней вектор, состоящий из нулей и единиц, в которой элемент равен 1, тогда и только тогда, когда в i –ой строке матрицы есть хотя бы один отрицательный элемент.

#include<iostream.h>

#define M 3

void main()

{

int mas[M][M], vec[M];

int i,j,yes;

cout<<"vvod ";

for(i=0;i<M;i++)

for(j=0;j<M;j++)

cin>>mas[i][j];

for(i=0;i<M;i++)

{

yes=0;

for(j=0;j<M || yes!=1;j++) //обработка

if (mas[i][j]<0)

{

vec[i]=1;

yes=1;

}

else

{

vec[i]=0;

}

}

cout<<"вывод вектора";

for(i=0;i<M;i++)

cout<<vec[i]<<" ";

return 0;

}

 

Задания на тему «Матрицы»

Вариант1

1.Дан целочисленный вектор В(5). Найти значение величины z=max|Bi |. и длину вектора.

2. Для матрицы, приведённой на рисунке вычислить сумму элементов из заштрихованной области.

0 9

 
 

 


0 9

Вариант 2

1. Дан целочисленный вектор D(7). Напечатать все его элементы, которые не имеют в нём себе равных.

2. Для матрицы, приведённой на рисунке вычислить сумму элементов из заштрихованной области.

 
 

 

 


Вариант 3

1. Дан вещественный вектор А(10), элементы которого расположены в порядке возрастания, и число В. Построить вектор С(11), элементами которого являются элементы вектора А и число В, упорядоченный по невозрастанию.

2. Для матрицы, приведённой на рисунке вычислить сумму элементов из заштрихованной области.

 

 
 

 

 


Вариант 4

1. Даны два целочисленных вектора А(6) и В(6). Распечатать все элементы, которые входят в оба вектора.

2. Для матрицы, приведённой на рисунке вычислить сумму элементов из заштрихованной области.

 
 

 


Вариант 5

1.Дан целочисленный вектор С(6). Найти сумму тех его элементов, которые удовлетворяют условию |Сi|<i2 .

2. Дана матрица целых чисел. На её основе сформировать вектор, присвоив его к –ому элементу значение 1, если все элементы к-ого столбца нулевые и 0 иначе.

Вариант 6

1. Даны два вектора х(7) и у(7) координат точек на плоскости. Найти среди них точку, наиболее близко расположенную к началу координат.

2.Дана матрица целых чисел. На её основе сформировать вектор, присвоив его к –ому элементу значение 1, если все элементы к-ой строки матрицы упорядочены по убыванию и 0 иначе.

Вариант 7

1.Дан целочисленный вектор С(5). Найти в нём количество элементов, удовлетворяющих условию 0<C i<i.

2.Дана матрица целых чисел. На её основе сформировать вектор, присвоив его к –ому элементу значение 1, если к-ая строка матрицы симметрична и 0 иначе.

Вариант 8

1..Числовой массив А(10) упорядочен по возрастанию. Известно, что число х принадлежит отрезку числовой оси, вмещающему заданный массив. Определить номер к, для которого а к-1 <x< а к.

2.Дана матрица целых чисел. Определить количество элементов матрицы, больших суммы остальных элементов его столбца.

Вариант 9

1. Дан вектор С(7). Cформировать новый вектор, элементы которого будут вычислены по следующим соотношениям (c1,c1*c2,…c1*c2*c3*c4*c5*c6*c7)

2. Дана матрица,. умножнть к-ю строку исходной матрицы на сумму элементов главной диагонали;

Вариант 10

1.Дан вектор, напечатать те элементы вектора, индексы которых являются степенями числа 2 (1,2,4,8,16).

2. Дана матрица,. поменять местами два заданных столбца матрицы;

Вариант 11

1.Дан вектор Х, сдвинуть циклически его элементы на одну позицию влево: xn=x1, xk=xk+1 при к=1,2,,,n-1.

2.Cосчитать сумму элементов каждой строки матрицы;

Вариант 12

1.Даны два вектора x[k], y[m]. Элементы каждого из них упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив z так, чтобы они снова оказались упорядоченными по неубыванию.

2. Сосчитать сумму элементов каждого столбца матрицы;

 

<== предыдущая лекция | следующая лекция ==>
Сортировка массивов | В мир книг через книгу
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.