29 / 23 / 2
Регистрация: 14.04.2009
Сообщений: 448
1

Проверьте лабораторную

18.04.2009, 03:33. Показов 801. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот, сделал первое задание. Если не составит труда, то проверьте пожалуйста. Я максимально понятно там все прокомментировал. Посмотрите, что можно улучшить или что исправить, какие-нибудь пожелания...

Вот задание:
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50), выводит исходную матрицу, упорядочивает элементы матрицы и выводит матрицу после ее упорядочивания. Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по убыванию массив. Алгоритмы ввода, вывода и упорядочивания матрицы оформить в виде функций с параметрами.


Решение:

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
#include <iostream.h>
 
// Протопиты функций
void InputDimensionOfMatrix  (int& n, int& m);
void InputElementsOfMatrix   (int** matrix, int n, int m);
void PrintMatrix             (int** matrix, int n, int m);
void SortMatrix              (int** matrix, int n, int m);
 
 
 
int main() {
 
    int N; // Количество строк матрицы
    int M; // Количество столбцов матрицы
 
    int i; // Итератор
 
 
    // Ввод размерности матрицы
    InputDimensionOfMatrix(N, M);
 
 
    // Создаем динамический двумерный массив
    int **matrix;
    matrix = new int *[N];
    if (!matrix) {
        cout << "Error: dynamic array is not created" << "\n";
        return 0;
    }
    for (i = 0; i < N; i++) {
        matrix[i] = new int [M];
        if (!matrix[i]) {
            cout << "Error: dynamic array is not created" << "\n";
            return 0;
        }
    }
 
 
 
    // Ввод элементов матрицы с клавиатуры
    InputElementsOfMatrix(matrix, N, M);
 
    // Вывод матрицы на дисплей
    cout << "Matrix " << N << "x" << M << ":" << "\n\n";
    PrintMatrix(matrix, N, M);
 
    // Cортировка элементов строк матрицы по убыванию
    SortMatrix(matrix, N, M);
 
    // Вывод отсортированной матрицы на дисплей
    cout << "Matrix " << N << "x" << M << " after sorting:" << "\n\n";
    PrintMatrix(matrix, N, M);
 
    // Удаление динамического массива
    for (i = 0; i < N; i++) delete matrix[i];
    delete [] matrix;
 
 
 
    // Конец программы
    return 0;
 
} // END OF MAIN
 
 
 
 
void InputDimensionOfMatrix(int& n, int& m) {
    cout << "Input matrix dimension NxM:" << "\n\n";
    cout << "2 <= N <= 100" << "\n";
    cout << "2 <= M <= 50"  << "\n\n";
    while (1) {
        cout << "\t" << "N = ";
        cin >> n;
        if ((n > 1) && (n <= 100)) break;
        cout << "\t" << "Error: matrix dimension for N must be 2 to 100" << "\n";
    }
    while (1) {
        cout << "\t" << "M = ";
        cin >> m;
        if ((m > 1) && (m <= 50)) break;
        cout << "\t" << "Error: matrix dimension for M must be 2 to 50" << "\n";
    }
    cout << "\n\n\n";
} // END OF FUNCTION
 
 
void InputElementsOfMatrix(int** matrix, int n, int m) {
    for (int i = 0; i < n; i++) {
        cout << "ROW " << (i + 1) << ">" << "\n"; 
        for (int j = 0; j < m; j++) {
            cout << "\t" << "COL " << (j + 1) << ":" << "\t";
            cin >> matrix[i][j];
        }
        cout << "\n\n";
    }
    cout << "\n\n";
} // END OF FUNCTION
 
 
void PrintMatrix(int** matrix, int n, int m) {
    for (int i = 0; i < n; i++) {
        cout << "\t" << "ROW " << (i + 1) << "> ";
        for (int j = 0; j < m; j++) cout << "\t" << matrix[i][j];
        cout << "\n";
    }
    cout << "\n\n";
} // END OF FUNCTION
 
 
void SortMatrix(int** matrix, int n, int m) {
    int buffer;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    for (int k = j + 1; k < m; k++)
        if (matrix[i][j] < matrix[i][k]) {
            buffer = matrix[i][j];
            matrix[i][j] = matrix[i][k];
            matrix[i][k] = buffer;
        }
} // END OF FUNCTION
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2009, 03:33
Ответы с готовыми решениями:

Проверьте лабораторную №3
Создать шаблоны функций, выполняющей ввод, вывод и упорядочивание матриц. Протестировать шаблоны...

Не могу сделать лабораторную работу
Задали лабораторную , а я даже не понимаю что от меня хотят и как это все сделать . Дан массив...

Непонятное условие на лабораторную работу
на завтра нужно лабу сделать..все выходные сидел и даже с условием сильно не разобрался..проблема...

Нужно выполнить лабораторную, пожалуйста. К зачёту не допускают
1.Проверьте, есть ли в слове приставка &quot;при&quot; или &quot;пре&quot;. 2.Вставьте в слове после &quot;кас&quot; букву...

1
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
18.04.2009, 03:53 2
Вобщем все нормально, но в этом я смысла не вижу.
C++
1
2
3
4
   if (!matrix) {
        cout << "Error: dynamic array is not created" << "\n";
        return 0;
    }
Вот пример(коментарии уберёшь)
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
#include <iostream>
using namespace std;
int main()
{
    try
    {
        char *arr2 = new char[1024*1024*1204];
    }
    catch(std::bad_alloc&)
    {
        cout<<"Fack no memory0!"<<endl;
    }
 
 
    //char *arr = new char[1024*1024*1204];//здесь программа вылетает
    //if(!arr)
    //  cout<<"Это ни когда не увидем!";
 
    try
    {
        char *arr = new char[1024*1024*1204];
    }
    catch(std::bad_alloc&)
    {
        cout<<"Fack no memory1!"<<endl;
    }
 
    return 0;
}
0
18.04.2009, 03:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2009, 03:53
Помогаю со студенческими работами здесь

Дали лабораторную вот задание нужно написать код
Для заданных x, \varepsilon, вводимых с клавиатуры: a) вычислить сумму тех слагаемых, которые по...

Делаю лабораторную работу, написал код программы, принцип думаю верен, а вот с синтаксисом проблемы. Помогите исправить ошибки
делаю лабораторную, написал код программы (принцип думаю верен, а вот с синтаксисом проблемы)....

требуется Решить лабораторную
2 лабораторная и уже несправляюсь((( Дана матрица MxN найти все ее периметры Если не...

Выполнить лабораторную ^__^
Описать класс «Обыкновенная дробь» с двумя полями: числитель и знаменатель. Реализовать методы для...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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