Практичне заняття 2
Приклад 1. До елементів матриці, що мають парні значення, додати число і вивести отриману матрицю в природному вигляді.
Перший варіант програмної реалізації - матриця описується явним способом і робота ведеться з її елементами.
// Робота ведеться без покажчиків
#include < iostream.h >
void main( )
{
int mat [2][3];
int і, j;
cout << " Введіть матрицю "<< endl;
for ( i = 0; i < 2; i++)
for ( j = 0; j < 3; j++)
cin >> mat [i] [j] ;
// Обробка і виведення матриці
cout << " Матриця mat " << endl;
for ( i = 0; i < 2; i++)
{
for ( j = 0; j< 3; j++)
{
if ( ( mat [i][j] /2 )*2 == mat[i][j])
mat[i][j] = mat[i][j] + 5;
cout << mat [i][j] << " ";
}
cout << endl; // Переведення рядка при виведенні матриці
}
}
Другий варіант програмної реалізації - матриця описана як масив покажчиків.
//Матриця описана як масив покажчиків.
#include < iostream.h >
void main ( )
{
int і, j, *pm[2];
cout << "Введіть матрицю "<< endl;
for ( i = 0; i < 2; i++)
for ( j = 0; j < 3; j++)
cin >> *( pm[i] + j );
cout << " Матриця МАТ "<< endl;
for ( i = 0; i < 2; i++)
{
for ( j = 0; j < 3; j++)
{
if ( *(pm[i] + j) / 2*2 == *( pm[i] + j ) )
*( pm [i] + j ) += 10;
cout << *( pm [i] + j) << " ";
}
cout << endl;
}
return 0;
}
У розглянутій програмі для виведення матриці можна використовувати інший вигляд оператора
:сout << ( (j == 0) ? '\t':' ') << *( pm[i]+j ) << ( (j == 2) ? '\n':' ') ;
Ім'я двовимірної матриці є покажчиком-константою на масив покажчиків-констант, кожний з якиx указує на початок відповідного рядка матриці, наприклад для матриці
mat [2] [2] маємо:
mat [0] - покажчик-константа на нульовий рядок матриці;
mat [1] - покажчик-константа на перший рядок матриці;
mat [2] - покажчик-константа на другий рядок матриці;
тобто: mat[0] == &mat[0][0];
mat[1] == &mat[1][0];
mat[2] == &mat[2][0];
Виведення матриці можна реалізувати в такий спосіб:
cout << mat [i] [j];
сout << *( mat [i] +j );
cout << *(* (mat +i )+j );.