Professional Documents
Culture Documents
Лаб№6
Лаб№6
Лабораторна робота №6
з дисципліни «Алгоритмізація та програмування»
з теми : «Матриці : основи роботи»
Варіант 20
Виконала студентка
групи КН-12
Пхайко Софія Дмитрівна
Перевірила:
Гамоцька Сніжана Леонідівна
Київ – 2020
Matrix31. Дана матрица размера M×N. Найти номера строки и столбца для
элемента матрицы, наиболее близкого к среднему значению всех ее
элементов.
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
a[m] 1.Ввести m,n. RezM,RezN-
[n]- 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j]; цілі
масив 3.Для i = 0: для j = 0: sum += a[i][j];
4. sred = sum / (m* n), RezM = 1, RezN = 1;
5.Для і=0: для j = 0 : якщо fabs(sred - a[i][j]) < fabs(sred -
a[RezM][RezN]),то RezN = j,RezM = i;
6.Вивести RezM,RezN.
А) Б)
Matrix39. Дана целочисленная матрица размера M×N. Найти количество ее
столбцов, все элементы которых различны.
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
a[m] 1.Ввести m,n. num-ціле
[n]- 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j];
масив 3. num = 0;
4.Для і=0: для j = 0 : якщо j == col,то ++num для j2 = j + 1:
якщо j2 < col, break;
5.Вивести num.
Рисунок 1 – Схема алгоритму
Текст програми мовою С++:
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main()
{
int i, j, sum = 0,n,m;
cout << "MxN"; cin >> m >> n;
vector <vector <int>> a(m, vector <int>(n));
for (i = 0; i < m; ++i) {
cout << "[" << i + 1 << "]";
for (j = 0; j < n; ++j) {
cout << "[" << j + 1 << "]";
cin >> a[i][j];
}
}
int num = 0, j2;
for (i = 0; i < m; ++i) {
for (j = 0; j < n; ++j) {
for (j2 = j + 1; (j2 < n) && (a[i][j] != a[i][j2]); ++j2);
if (j2 < n) break;
}
if (j == n) ++num;
}
cout << "num=" << num;
return 0;
}
Рисунок 2 - Результати роботи програми:
А) Б)
Matrix51. Дана матрица размера M×N. Поменять местами строки,
содержащие минимальный и максимальный элементы матрицы.
Таблиця 1 –МПЗ
Вхідні Дії Вих.да
дані ні
a[m] 1.Ввести m,n. a[i][j]-
[n]- 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j]; масив
масив 3. maxI = 1, maxJ = 1, minI = 1, minJ = 1;
4.Для і=0: для j = 0 : якщо a[i][j] > a[maxI][maxJ],то maxI =
i,maxJ = j; якщо a[i][j] < a[minI][minJ],то minI = i, minJ = j;
5.Якщо minI != maxI,то для j = 0: swap(a[maxI][j], a[minI][j]);
6.Для i = 0: Для j = 0 : вивести a[i][j].
A) Б)