Двумерни масиви

  1. Двумерен масив: масив, който има 2 индекса – за ред и за колони
  2. Деклариране
float grades[19][15]; //двумерен масив, който съхранява всички оценки(15 предмета) за един клас от 19 ученика
string msgs[10][100]; //двумерем масив, който съхранява съобщенията (максимум 100 съобщения) на 10 човека 
int numbs[5][10]; //двумерем масив с 50 числа - 5 реда с по 10 колони

3. Обхождане на масив

//Начин 1 - чрез изброявне на всички елементи
 string cars[3][4];
 cars[0][0] = "Opel Kadet";
 cars[0][1] = "Opel Zafira";
 cars[0][2] = "Opel Astra";
 cars[0][3] = "Opel Corsa";

 cars[1][0] = "BMW Alpina";
 cars[1][1] = "BMW M5";
 cars[1][2] = "BMW 520";
 cars[1][3] = "BMW X6";

 cars[2][0] = "BMW Alpina";
 cars[2][1] = "BMW M5";
 cars[2][2] = "BMW 520";
 cars[2][3] = "BMW X6";

//Начин 2 - чрез два вложени цикъла
for(int i = 0; i <= 2; i++)
 {
 for(int j = 0; j <= 3; j++)
 {
 cout<<cars[i][j]<<" | ";
 }
 cout<<endl;
 }

Примерна задача: Да се напише програма, която генерира двумерен масив с 5 реда и 3 колони, който съдържа числа, които се делят на 3. Като на всеки ред увеличаваме числата с по 30.
matrix1_pic

int nums[5][3];
int a = 3;

for(int i = 0; i <= 4; i++)
{
 for(int j = 0; j <= 2; j++)
 {
  nums[i][j] = a;
  a = a + 3;
  cout<<nums[i][j]<<" ";
 }
 a = a + 30;
 cout<<endl;
}

Да се намери сумата от всички числа на този двумерен масив

int nums[5][3];
int a = 3;
int sum = 0;

for(int i = 0; i <= 4; i++)
{
 for(int j = 0; j <= 2; j++)
 {
  nums[i][j] = a;
  a = a + 3;
  cout<<nums[i][j]<<" ";
  sum = sum + nums[i][j];
 }
 a = a + 30;
 cout<<endl;
}
cout<<"total sum = "<<sum<<endl;

Задачи за упражнение:

  1. Да се направи двумерен масив, който съхранява информация за 4 марки коли, като за всяка марка се пазят по 3 модела. Нека първия елемент от масива да е с марката кола, а останалите 3 елемента да са с моделите. Да се отпечатат всички елементи на двумерния масив.
  2. Да се присвоят и отпечатат стойности на двумерен масив MxN – последователни числа в намаляващ ред.
1 2 3 4
9 10 11 12
25 26 27 28
  1. Да се присвоят и отпечатат стойности на двумерен масив MxN – последователни числа на всеки ред и между редовете умножаваме по 2.
  2. Да се генерира двумерен масив със следните елементи:
2 4 6 8 10
12 14 16 18 20
22 24 26 28 30
36 33 30 27
24 21 18 15
12 9 6 3
1  5 9 13 17

2 6 10 14 18

3 7 11 15 19

4 8 12 16 20

Да се присвоят и отпечатат стойности на двумерен масив MxN – последователни букви

a b c d
e f g h
i j k l