You are on page 1of 8

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ТАРАСА ШЕВЧЕНКA


ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра інтелектуальних технологій

Лабораторна робота №7
з дисципліни «Алгоритмізація та програмування»
з теми : «Матриці: робота з діагоналями»
Варіант 20

Виконала студентка
групи КН-12
Пхайко Софія Дмитрівна
Перевірила:
Гамоцька Сніжана Леонідівна

Київ – 2020
Matrix84. Дана квадратная матрица A порядка M. Найти среднее
арифметическое элементов каждой ее диагонали, параллельной главной
(начиная с одноэлементной диагонали A1,M).
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
m- 1.Ввести m. sum / (i + 1)-
ціле,a[ 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j]; дійсне
m][n]- 3.Для і = 1: sum = 0 ,вивести sum / (i + 1);для j= 0: sum
масив += a[j][i - j];

Рисунок 1 – Схема алгоритму


#include <iostream>
#include <vector>
using namespace std;
int main()
{
int m;
cout << "M="; cin >> m;
vector <vector <int>> a(m, vector <int>(m));
for (int i = 0; i < m; ++i) {
cout << "[" << i + 1 << "]";
for (int j = 0; j < m; ++j) {
cout << "[" << j + 1 << "]";
cin >> a[i][j];
}
}
for (int i = 1; i < (m - 1); ++i)
{
float sum = 0;
for (int j = 0; j < i + 1; ++j)
{
sum += a[j][i - j];
}
cout << "average of " << i + 1 << " diagonal = " << sum / (i + 1) << endl;
}
return 0;
}
Рисунок 2 – Результати роботи програми:

А) Б)

Matrix85. Дана квадратная матрица A порядка M. Найти среднее


арифметическое элементов каждой ее диагонали, параллельной побочной
(начиная с одноэлементной диагонали A1,1).
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
m- 1.Ввести m. sum /( j) -
ціле,a[ 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j]; дійсне
m][n]- 3.Для і = 1: sum = 0 ,вивести sum / (j);для j= 0: sum +=
масив a[j][i - j];
4. Для j = m-1: sum = 0 ,вивести sum / (i + 1);для i= 1:
sum += a[m - j + i][m - i + 1];
Рисунок 1 – Схема алгоритму
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int m;
cout << "M="; cin >> m;
vector <vector <int>> a(m, vector <int>(m));
for (int i = 0; i < m; ++i) {
cout << "[" << i + 1 << "]";
for (int j = 0; j < m; ++j) {
cout << "[" << j + 1 << "]";
cin >> a[i][j];
}
}
int i, j;
for (int j = 1; j < (m - 1); ++j)
{
float sum = 0;
for (int i = 0; i < j; ++i)
{
sum += a[j][j - i + 1];
}
cout << "average of " << i + 1 << " diagonal = " << sum / (j) << endl;
}
for (int j = m - 1; j < 1; --j) {
float sum = 0;
for (int i = 1; i < j; ++i) {
sum += a[m - j + i][m - i + 1];
}
cout << "average of " << i + 1 << " diagonal = " << sum / (j) << endl;
}
return 0;
}

Рисунок 2 – Результати роботи програми:

A) Б)

Matrix88. Дана квадратная матрица порядка M. Обнулить элементы


матрицы, лежащие ниже главной диагонали. Условный оператор не
использовать.
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
m- 1.Вивести m; a[i][j]-масив
ціле,a[ 2. Для і=0:вивести і,для j = 0 :вивести j та ввести a[i][j];
m][n]- 3.Для і = 0: для j = 0: якщо i>j,то a[i][j] = 0;
масив 4.Для i = 0:для j = 0: вивести a[i][j].
Рисунок 1 – Схема алгоритму
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int m;
cout << "M="; cin >> m;
vector <vector <int>> a(m, vector <int>(m));

for (int i = 0; i < m; ++i) {


cout << "[" << i + 1 << "]";
for (int j = 0; j < m; ++j) {
cout << "[" << j + 1 << "]";
cin >> a[i][j];
}
}
int i, j;
for (i = 0; i < m; i++) {
for (j = 0; j <m; ++j) {
if(i>j) a[i][j] = 0;
}
}
for (i = 0; i < m; ++i) {
for (j = 0; j < m; ++j) cout << a[i][j] << " ";
cout << " \n";
}
return 0;
}

Рисунок 2 – Результати роботи програми:


A) Б)

Matrix90. Дана квадратная матрица порядка M. Обнулить элементы


матрицы, лежащие на побочной диагонали и ниже нее. Условный оператор
не использовать.
Таблиця 1 –МПЗ
Вхідні Дії Вих.дані
дані
m- 1.Вивести m; a[i][j]-масив
ціле,a[ 2.Для і=0:вивести і,для j = 0 : вивести j та ввести a[i][j];
m][n]- 3.Для і = 0: для j = 0: якщо i + j + 1 >= m, то a[i][j] = 0;
масив 4.Для i = 0:для j = 0: вивести a[i][j].

Рисунок 1 – Схема алгоритму


#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main()
{
int m;
cout << "M="; cin >> m;
vector <vector <int>> a(m, vector <int>(m));
for (int i = 0; i < m; ++i) {
cout << "[" << i + 1 << "]";
for (int j = 0; j < m; ++j) {
cout << "[" << j + 1 << "]";
cin >> a[i][j];
}
}
int i, j;
for (i = 0; i < m; i++) {
for (j = 0; j < m; ++j) {
if (i + j + 1 >= m) a[i][j] = 0;
}
}
for (i = 0; i < m; ++i) {
for (j = 0; j < m; ++j) cout << a[i][j] << " ";
cout << " \n";
}
return 0;
}

Рисунок 2 – Результати роботи програми:

А) Б)

You might also like