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


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


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


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


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


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


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


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


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


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



Лабораторна робота № 8

Двовимірні МАСИВИ (МАТРИЦІ)

Мета роботи

 

Дослідити роботу операторів циклу мови програмування С++, засвоїти методику складання, налагодження та розрахунку програм для процесів обробки матриць на ПЕОМ.

Постановка завдання

 

Скласти схему алгоритму, таблицю символічних імен та програму мовою С++ відповідно заданого варіанта. Налагодити та розв’язати задачу на ПЕОМ.

Теоретичні відомості

 

Двовимірний масив (матриця) подається як одновимірний, елементи якого - також масиви. Наприклад, визначення char а[10][20] задає масив, що складається з 10 одновимірних масивів розміром 20 елементів, кожен з яких - символьного типу. Елементи двовимірного масиву зберігаються по рядках, тобто якщо ними проходити в напрямку їх розміщення в пам’яті, то спочатку буде змінюватися правий індекс. Наприклад, звернення до дев’ятого елементу п’ятого рядка запишеться а[5][9].

Задано масив:

int a[2][3];

Елементи масиву а так розміщені в пам’яті:

 

a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], a[1][2].

 

Ініціалізувати матрицю, як і вектор, можна під час визначення масиву:

 

int a[ M ][ N ] = { { 11, 2, 6, 9, 7, 14 }, { 14, 25,

36, 17, 18, 3} };

або безпосередньо в функції:

 

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

{

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

cout <<”Уведіть елементи матриці”;

cin>> a[ i ][ j ];

}

Доступ до елементів можливий за допомогою вкладених циклів for, де перший цикл надає доступ до перебирання лівих індексів (рядків), а другий, укладений – до правих індексів (стовпців).

Програма роботи

3.1. Записати запропанований викладачем варіант завдання з п. 5.

Ознайомитись з рекомендованою літературою та конспектом лекцій.

3.2. Програмування задачі:

– скласти таблицю символічних імен;

– скласти схему алгоритму або псевдокод (за вказіквою викладача);

– скласти програму розв’язання задачі мовою С++.

3.3. Розв’язання задачі на ПЕОМ.

На ПЕОМ набрати, відлагодити та розв’язати складену програму.

3.4. Оформлення звіту.

Звіт повинен містити:

– номер лабораторної роботи та її назву;

– умову задачі та дані свого варіанта;

– таблицю символічних імен;

– схему алгоритму (або псевдокод);

– лістинг (або рукопис) програми;

– результати розрахунку задачі;

– висновки.

 

Приклад

 

Дано матрицю T(2,6). Мінімальний і максимальний елементи матриці поміняти місцями.

Розв’язання.

Таблиця символічних імен

Математичне ім’я Ім’я у програмі Смислове значення Змінна
Тип Значення
А a Матриця з N рядків та M стовпців int Початкові дані
i,j i,j Індекси елементів матриці А int Початкові дані
max max Максимальний елемент int Результат
min min Мінімальний елемент int Результат
imax imax i- й індекс максимального елемента int Результат
jmax jmax j - й індекс максимального елемента int Результат
imin imin i - й індекс мінімального елемента int Результат
jmin jmin j - й індекс мінімального елемента int Результат
vsp vsp Буферна змінна int Допоміжна змінна
N N Кількість стовпців у матриці int
M M Кількість рядків у матриці int

Текст програми мовою C++

для компіляторів Visual C++2

# include <iostream.h>

const int M = 2;

const int N = 6;

int main()

{ // ініціалізація масиву а

int a[M][N]={{11,2,6,9,7,14},{14,25,36,17,18,3}};

int i, j, max, min, imax, imin, jmax, jmin, vsp;

cout << "Isxodniy massiv:" << endl;

for( i = 0; i < M; i++ ) // вивід вихідного масиву

{

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

cout << a[ i ][ j ] << ‘\t’;

cout << endl;

}

max = a[0][0]; // допускаємо, що елемент a[0][0]максимальний

min = a[0][0]; // допускаємо, що елемент a[0][0]мінімальний

// відповідно до цього зазначаємо їх індекси

imax = 0; jmax = 0;

imin = 0; jmin = 0;

for ( i = 0; i < M; i++ ) // виконуємо доступ до рядків

for ( j = 0; j < N; j++ ) // виконуємо доступ до стовпців

{

if (max < a[i][j]) // пошук максимального елементу {

max = a[ i ][ j ];// фіксуємо значення елементу

imax = i; // фіксуємо номер рядка

jmax = j; // фіксуємо номер стовпця

}

if (min > a[i][j]) // пошук мінімального елементу

{

min = a[ i ][ j ]; // фіксуємо значення елементу

imin = i; // фіксуємо номер рядка

jmin = j; // фіксуємо номер стовпця

}

}

cout << endl;

cout << "Максимальний елемент = " << max << endl;

cout << "Мінімальний елемент = " << min << endl;

// міняємо місцями мінімальний і максимальний елементи:

vsp = a[imax][jmax]; // копіюємо максимальний елемент в буфер

a[imax][jmax] = a[imin][jmin]; // на місце максимального

// елементу записуємо мінімальний

a[imin][jmin] = vsp; // на місце мінімального елементу записуємо

// дані з буфера

cout << endl << "Масив після перестановки: " << endl;

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

{

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

cout << a[ i ][ j ] << ‘\t’;

cout << endl;

}

return 0;

}


Читайте також:

  1. II. Будова доменної печі (ДП) і її робота
  2. IV. ІНДИВІДУАЛЬНА РОБОТА СТУДЕНТІВ.
  3. IV. Практична робота.
  4. VI. Домашня робота.
  5. VI. Практична робота .
  6. VI. Практична робота .
  7. VI. Практична робота.
  8. VI. Практична робота.
  9. VI. Практична робота.
  10. VI. Практична робота.
  11. VI. Практична робота.
  12. VI. Практична робота.




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

<== попередня сторінка | наступна сторінка ==>
Варіанти завдань | Варіанти завдань

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

  

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


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