Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.10.2021
Сообщений: 2
1

Вывод элементов матрицы

06.02.2022, 14:28. Показов 482. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С клавиатуры вводится натуральное число N(N<100) и N2 целых чисел. Сформировать квадратную
матрицу порядка N.
a) Вывести элементы первого столбца в строку;
b) Вывести элементы последней строки в столбец;
c) Вывести элементы, расположенные ниже побочной диагонали в виде треугольника;
d) Вывести отрицательные элементы главной диагонали; если таковых нет, вывести 0;
e) вывести первые элементы каждого столбца;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2022, 14:28
Ответы с готовыми решениями:

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур
Завтра дедлайн, а у меня 2 лабы и начало первого. Прошу помощи.

Графика. Модули. Ввод, вывод матрицы, вывод элементов из центра по спирали...
Модуль включает подпрограммы обработки матриц: ввод матрицы, вывод матрицы в графическом режиме,...

Вычислить сумму элементов матрицы в заштрихованной области. Ввод и вывод матрицы оформить в виде процедур
Помогите пожалуйста с задачей !!! Попробовал сделать, но не получается выделить столбцы кроме...

Составить программу обработки матрицы. В программе предусмотреть вывод исходной матрицы и полученной (размерность массива и значения элементов должны
Составить программу обработки матрицы. В программе предусмотреть вывод исходной матрицы и...

Исправить вывод массив состоящего из элементов 3-ичной матрицы по N элементов
Необходимо составить программу, которая будет выводить массив состоящий из элементов 3-ичной...

1
236 / 50 / 37
Регистрация: 24.01.2022
Сообщений: 137
07.02.2022, 07:17 2
Maxgamer19, можно еще улучшить, а кроме того необходимо протестировать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <iostream>
#include <utility>
#include <iterator>
#include <vector>
 
// ?
template <typename T>
using Matrix = std::vector<std::vector<T>>;
 
Matrix<double> enterMatrix(const size_t N);
void outMatrix(const Matrix<double>& mx);
 
void outFirstColToRow(const Matrix<double>& mx);
void outLastRowToCol(const Matrix<double>& mx);
void outBelowSideDiagonalToTriangle(const Matrix<double>& mx);
void outNegativeValuesMainDiagonal(const Matrix<double>& mx);
void outFirstValuesEachCol(const Matrix<double>& mx);
 
int main()
{
    size_t N = 0;
    // с клавиатуры вводится натуральное число N (N < 100)
    std::cout << "enter N = "; std::cin >> N;
    while (N >= 100) {
        std::cout << "N must be less than 100!" << std::endl;
        std::cout << "enter N = "; std::cin >> N;
    }
 
    // ввод N2 целых чисел
    Matrix<double> matrix = enterMatrix(N);
    std::cout << "matrix = {" << std::endl;
    outMatrix(matrix); std::cout << "}" << "\n\n";
 
    // a) Вывести элементы первого столбца в строку;
    std::cout << "a)" << std::endl;
    outFirstColToRow(matrix); std::cout << std::endl;
 
    // b) Вывести элементы последней строки в столбец;
    std::cout << "b)" << std::endl;
    outLastRowToCol(matrix); std::cout << std::endl;
 
    // c) Вывести элементы, расположенные ниже побочной диагонали в виде треугольника;
    std::cout << "c)" << std::endl;
    outBelowSideDiagonalToTriangle(matrix); std::cout << std::endl;
 
    // d) Вывести отрицательные элементы главной диагонали; если таковых нет, вывести 0;
    std::cout << "d)" << std::endl;
    outNegativeValuesMainDiagonal(matrix); std::cout << std::endl;
 
    // e) вывести первые элементы каждого столбца;
    std::cout << "e)" << std::endl;
    outFirstValuesEachCol(matrix); std::cout << std::endl;
 
    return 0;
}
 
Matrix<double> enterMatrix(const size_t N) {
    Matrix<double> matrix; matrix.reserve(N);
    for (size_t i = 0; i < N; ++i) {
        std::vector<double> line; line.reserve(N);
        std::cout << "enter line = ";
        for (size_t j = 0; j < N; ++j) {
            double nextValue = 0;
            std::cin >> nextValue;
            line.push_back(nextValue);
        }
        matrix.push_back(std::move(line));
    }
    return matrix;
}
 
void outMatrix(const Matrix<double>& mx)
{
    for (size_t i = 0; i < mx.size(); ++i) {
        std::copy(mx[i].begin(), mx[i].end(), std::ostream_iterator<double>(std::cout, " "));
        std::cout << std::endl;
    }
}
 
void outFirstColToRow(const Matrix<double>& mx)
{
    if (mx.empty()) std::cout << "matrix empty" << std::endl;
    for (size_t i = 0; i < mx.size(); ++i)
        std::cout << mx[i].front() << " ";
    std::cout << std::endl;
}
void outLastRowToCol(const Matrix<double>& mx)
{
    if (mx.empty()) std::cout << "matrix empty" << std::endl;
    std::copy(std::begin(mx[mx.size() - 1]), std::end(mx[mx.size() - 1]), 
        std::ostream_iterator<double>(std::cout, "\n"));
}
void outBelowSideDiagonalToTriangle(const Matrix<double>& mx)
{
    // could be improved!
    if (mx.empty()) std::cout << "matrix empty" << std::endl;
    for (size_t i = 0; i < mx.size(); ++i) {
        for (size_t j = 0; j < mx[i].size(); ++j)
            if (j > mx.size() - 1 - i) 
                std::cout << mx[i][j] << " "; 
            else std::cout << " ";
        std::cout << std::endl;
    }
    std::cout << std::endl;
}
void outNegativeValuesMainDiagonal(const Matrix<double>& mx)
{
    if (mx.empty()) std::cout << "matrix empty" << std::endl;
    std::vector<double> negative;
    for (size_t i = 0; i < mx.size(); ++i)
        if (mx[i][i] < 0) negative.push_back(mx[i][i]);
    if (negative.empty() == false)
        std::copy(std::begin(negative), std::end(negative), 
            std::ostream_iterator<double>(std::cout, " "));
    else std::cout << "0";
    std::cout << "\n";
}
void outFirstValuesEachCol(const Matrix<double>& mx)
{
    if (mx.empty()) std::cout << "matrix empty" << std::endl;
    std::copy(std::begin(mx[0]), std::end(mx[0]), std::ostream_iterator<double>(std::cout, " "));
    std::cout << std::endl;
}
0
07.02.2022, 07:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2022, 07:17
Помогаю со студенческими работами здесь

Вывод элементов из матрицы
Дана матрица любого размера, состоящая из 0 и 1. Нужно вывести только нули если их индексы кратны 3.

Вывод элементов матрицы
Необходимо составить программу печати элементов матрицы,просматривая её по линиям,параллельным...

Вывод элементов матрицы
Необходимо вывести элементы матрицы в следующем порядке: строка слева на право, следующая строка...

Вывод элементов матрицы в textbox
У меня есть следующая матрица: double ifs1_4 = {{1/3, 0, 0, 1/3, 0, 0, 0.25}, {1/6,...

Вывод элементов матрицы по спирали
Составить программу ввода квадратной матрицы и печати в строку всех ее элементов в заданном ниже...

Вывод элементов столбцов матрицы
Как сделать вывод элементов первого столбца матрицы снизу вверх, затем второго столбца снизу вверх...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru