МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
||
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 == 0) mat[i][j] = mat[i][j] + 5; cout << mat [i][j] << " "; } cout << endl; //Переведення рядка при виведенні матриці } } Другий варіант програмної реалізації —матриця описана як масив покажчиків.
//P2_13.CPP — матриця описана як масив покажчиків: #include < iostream> using namespace std; Main ( ) { int і, j, *pm[2]; cout << "Введіть матрицю "<< endl; for ( i = 0; i < 2; i++) for ( j = 0; j < 3; j++) cin >> *( pm[i] + j ); cout << " Матриця МАТR "<< endl; for ( i = 0; i < 2; i++) { for ( j = 0; j < 3; j++) { if ( *(pm[i] + j) %2 == 0 ) *( pm [i] + j ) += 10; cout << *( pm [i] + j) << " "; } cout << endl; } return 0; } У розглянутій програмі для виведення матриці можна використовувати інший вигляд оператора :
сout << ( (j == 0) ? '\t':' ') << *( pm[i]+j ) << ( (j == 2) ? '\n':' ') ; Ім'я двовимірної матриці є покажчиком-константою на масив покажчиків-констант, кожний з яких указує на початок відповідної рядка матриці, наприклад для матриці 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]; cout << *( mat [i] +j ); cout << *(* (mat +i )+j ); У С++ можна описати змінну, що має тип "покажчик на покажчик". Ознакою такого типу є повторення символу "*" при описі змінної, наприклад int ** pmt; при цьому пам'ять для такої змінної не виділяється. Її треба привести до відповідного масиву. При описі покажчик на покажчик можна ініціалізувати, наприклад :
int x = 20; int *px1 = &x; int** px2 = &px1; int ***px3 = &px2; Доступ до змінної x тепер можна здійснити одним із трьох способів:*px1; **px2; ***px3; . Для доступу до пам'яті через покажчики на покажчики можна використовувати як індекси так і символи "*", наприклад, еквівалентними будуть посилання на змінну x: px1 [0] *px1; px2 [0][0] **px2; px3 [0][0][0] ***px3; 2.6 Контрольні питання 1. Що таке масив? 2. Як здійснюється опис масивів у програмі? 3. Як вибирається елемент масиву з пам'яті? 4. Які ще оператори мови C++ можна використовувати для введення елементів масиву в пам'ять комп'ютера? 5. Скільки циклів треба використовувати для введення, виведення і перебору елементів матриці? 6. Як звернутися до довільного елемента масиву? 7. Які обмеження існують у C++ на розмір і розмірність масивів? 8. Як вивести на друк матрицю в природному вигляді?
Переглядів: 281 |
Не знайшли потрібну інформацію? Скористайтесь пошуком google: |
© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове. |
|