Форум программистов, компьютерный форум CyberForum.ru

Проверьте лабораторную №3 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error LNK2019: ссылка на неразрешенный внешний символ http://www.cyberforum.ru/cpp-beginners/thread30624.html
Вот код, неполный, решил откомпилировать - узнать, что исправить #include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std; #define istr 21 struct train{ int num; char naz; char time;
C++ Приведение типов Чем отличается type(x) от (type) x? http://www.cyberforum.ru/cpp-beginners/thread30618.html
C++ Посмотрите лабораторную работу №2
Используя алгоритмы работы с матрицей, разработанные в лабораторной работе №*1, разработать и протестировать программу обработки двух матриц с элементами разных типов. Программа должна содержать перегруженные функции для работы с целочисленной матрицей и матрицей, элементы которой - строки. #include <iostream> #include <conio.h> using namespace std; // Ïðîòîïèòû ôóíêöèé void ...
Строки в условии C++
Помоги разобраться со строками в условии. cout<<"Is it a worker or a student?"<<endl; cin>>s; if(s=="worker") worker1.data_worker(); else student1.data_student(); Здесь чисто игнорирует, не выдавая никаких ошибок.
C++ Библиотека gmp.h, бесконечные числа http://www.cyberforum.ru/cpp-beginners/thread30607.html
вопрос такой: как выводить числа, которые длинной больше 10 символов?как работает gmp_get_str?
C++ Как правильно создать динамический массив из функции Вот так ругается компилятор: int** i_matrix; f(i_matrix,N, M); ............................................. void f(int** matrix, int n, int m) { matrix = new int *; if (!matrix) exit(0); подробнее

Показать сообщение отдельно
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448

Проверьте лабораторную №3 - C++

19.04.2009, 03:35. Просмотров 807. Ответов 10
Метки (Все метки)

Создать шаблоны функций, выполняющей ввод, вывод и упорядочивание матриц. Протестировать шаблоны для матриц с элементами различных типов: int, float и char. Варианты заданий приведены в лабораторной работе № 1.

Какие недочеты, что можно улучшить и т.д.

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
#include <iostream>
#include <conio.h>
using namespace std;
 
#define DATATYPE double // Г’ГЁГЇ Г¤Г*Г*Г*ûõ Г¬Г*òðèöû
 
                   void input_matrix_dimension   (int&, int&);
template <class T> T**  create_matrix            (int n, int m, T foo);
template <class T> void input_elements_of_matrix (T** matrix, int n, int m);
template <class T> void print_matrix             (T** matrix, int n, int m);
template <class T> void sorting_matrix           (T** matrix, int n, int m);
template <class T> void delete_matrix            (T** matrix, int n);
 
 
 
 
int main() {
 
    int N, M;
    input_matrix_dimension(N, M);
 
    DATATYPE foo = 1;
    DATATYPE** matrix = create_matrix(N, M, foo);
    input_elements_of_matrix(matrix, N, M);
    cout << "Matrix " << N << "x" << M << ":" << "\n\n";
    print_matrix(matrix, N, M);
    cout << "Press <Enter> to start sorting the matrix..." << "\n";
    while (1) if (getch() == 13) break;
    sorting_matrix(matrix, N, M);
    cout << "The matrix " << N << "x" << M << " after sorting:" << "\n\n";
    print_matrix(matrix, N, M);
    delete_matrix(matrix, N);
 
    cout << "Press <Enter> to exit" << "\n";
    while (1) if (getch() == 13) exit(0);
 
    return 0;
} // END OF MAIN
 
 
 
 
void input_matrix_dimension(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 >= 2) && (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 >= 2) && (m <= 50)) break;
        cout << "\t" << "Error: matrix dimension for M must be 2 to 50" << "\n";
    }
    cout << "\n\n\n";
} // END OF FUNTION
 
template <class T> T** create_matrix(int n, int m, T foo) {
    T** matrix = new T* [n];
    if (!matrix) exit(0);
    for (int i = 0; i < n; i++) {
        matrix[i] = new T [m];
        if (!matrix[i]) exit(0);
    }
    return matrix;
} // END OF FUNTION
 
template <class T> void input_elements_of_matrix(T** 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 FUNTION
 
template <class T> void print_matrix(T** 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
 
template <class T> void sorting_matrix(T** 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
 
template <class T> void delete_matrix(T** matrix, int n) {
    for (int i = 0; i < n; i++) delete [] matrix[i];
    delete [] matrix;
} // END OF FUNCTION
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru