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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
#1

Привести пример обработки и преобразования матриц, используя динамическое выделение памяти - C++

06.01.2014, 14:02. Просмотров 523. Ответов 1
Метки нет (Все метки)

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

Желательно самый простой и понятный для новичка.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 14:02     Привести пример обработки и преобразования матриц, используя динамическое выделение памяти
Посмотрите здесь:

Динамическое выделение памяти. Использование функций для обработки двумерных массивов - C++
не понимаю что делаю хотя задание такое 1.2. Постановка задачи Задача 1. Разработать алгоритм и программу выполняющую следующие...

Распределение памяти. Динамическое выделение памяти - C++
an-1 an-2 ... a2

динамическое выделение памяти - C++
дана целочисленная прямоугольная матрица. определить: 1) количество строк, не содержащих ни одного нулевого элемента; 2) максимальное...

Динамическое выделение памяти - C++
Доброго времени суток всем!:) Есть такая проблема... Дан класс полином. который содержит закрытые члены коэффициент и степень полинома, а...

Динамическое выделение памяти new - C++
Доброго времени всем :) Недавно начал вникать в прелести c++, однако встретился с неприступной холодностью его и непониманием моих...

Динамическое выделение памяти - C++
Не могу разобраться с динамическим выделением памяти. Объект - учреждение. Имеет параметры - название, тип, год основания, количество...

Динамическое выделение памяти - C++
Здраствуйте. Собственно сам код и вопрос: почему могу свободно выходить за границы массива? Для чего тогда размерность указывается......

Динамическое выделение памяти - C++
Доброго времени суток. Пытаюсь разобраться с динамическим выделением память. Суть: Есть структура с двумя полями: 1. Указатель...

Динамическое выделение памяти - C++
Всем привет, читал про динам. выделение памяти и тут возник вопрос. Так как для новичков пишут книги не очень глубоко, то в книге ответа на...

Динамическое выделение памяти - C++
Добрый день! пытаюсь освоить С++ и дошёл до раздела динамического выделения памяти. Беру пример с сайта cppstudio.com всё работает ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
06.01.2014, 14:54     Привести пример обработки и преобразования матриц, используя динамическое выделение памяти #2
Не далее как вчера писал в помощь простенькую программку:

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
#include <iostream>
#include <locale>    //нужно, чтобы подключить русский язык.
#include <iomanip>   //требуется для форматирования вывода (используем манипуляторы left и setw в функции print_matrix(...)).
 
using namespace std;
 
int get_max_el(int **matr, int M, int N);
void print_matrix(int **matr, int M, int N); //удобный вывод матрицы на экран.
 
int main()
{
    locale::global(locale("Russian")); //подключаем русский язык.
 
    int M, N;
    cout <<"Введите размеры матрицы: "; //для того, чтобы в матрице содержались элементы, лежащие ниже побочной диагонали, нужно, чтобы M > 1.
    cin >>M >>N;
 
    //динамически выделяем память под матрицу:
    int **matrix = new int*[M];  
    int i, j;
    for (i = 0; i < M; i++) {
        matrix[i] = new int[N];
    }
 
    cout <<"Введите элементы матрицы:\n"; //вводим матрицу размера MxN.
    for (i = 0; i < M; i++) {
        for (j = 0; j < N; j++) {
            cin >>matrix[i][j];
        }
    }
 
    cout <<"Итак, вы ввели матрицу:\n";
    print_matrix(matrix, M, N);
 
    int max = get_max_el(matrix, M, N);
    cout <<"Максимальный элемент, лежащий ниже побочной диагонали: " <<max <<'\n';
 
    cin.get(); //задержка консольного окна - чтобы не погасло раньше времени.
    cin.get();
 
    //освобождаем память:
    for (i = 0; i < M; i++) {
        delete [] matrix[i];
    }
    delete [] matrix;
 
    return 0;
}
 
int get_max_el(int **matr, int M, int N)   //элементы, лежащие ниже побочной диагонали, удовлетворяют неравенству: i > N-1-j;
{
    int i, j, max = matr[1][N-1];
    for (i = 2; i < M; i++) { 
        for (j = N-1; i > N-1-j; j--) {
            if (matr[i][j] > max) {
                max = matr[i][j];
            }
        }
    }
 
    return max;
}
 
void print_matrix(int **matr, int M, int N) 
{
    int i, j;
    for (i = 0; i < M; i++) {
        for (j = 0; j < N; j++) {
            cout <<left <<setw(5) <<matr[i][j];
        }
        cout <<'\n';
    }
    cout <<'\n';
}
Добавлено через 1 минуту
Здесь сначала вводится матрица MxN (память под нее выделяется динамически),
затем ищем наибольший элемент, лежащий ниже побочной диагонали.
Код я комментировал, так что надеюсь, разобраться в нем будет не сложно и даже понятно
Yandex
Объявления
06.01.2014, 14:54     Привести пример обработки и преобразования матриц, используя динамическое выделение памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru