Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






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. Як вивести на друк матрицю в природному вигляді?

 




Переглядів: 279

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.