МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторна робота № 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). Мінімальний і максимальний елементи матриці поміняти місцями. Розв’язання. Таблиця символічних імен
Текст програми мовою 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; } Читайте також:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|