Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Написать набор функций, обслуживающих блочно-диагональные матрицы из нескольких нижне-треугольных блоков - C++

06.04.2014, 16:19. Просмотров 328. Ответов 2
Метки нет (Все метки)

Написать набор функций (create,access,destroy), обслуживающих блочно-диагональные матрицы из нескольких нижне-треугольных блоков порядка 20. Порядок таких матриц определяется во время выполнения программы.
Только недавно начал изучать указатели, и испытываю дикие трудности с заданиями. Буду рад любой помощи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 16:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать набор функций, обслуживающих блочно-диагональные матрицы из нескольких нижне-треугольных блоков (C++):

Перевод между системами счисления по основанию 2..16. Написать набор функций. - Pascal
Написать набор функций, который позволяет переводить произвольное целое положительное число Х, представленное в системе счисления N, в...

Куда помещать набор свой набор процедур и функций? - Turbo Pascal
В какую папку в Pascal SchoolPak поместить .pas файл, чтобы он потом в .tpu преобразовался?

Построение блочно-диагональной матрицы - Matlab
Доброго времени суток. Возникла сложность построить следующую матрицу eta_f, которая является блочно-диагональной, где на главной диагонали...

Приведение матрицы к блочно-диагональному виду - C++
Помогите, пожалуйста! Так то надо написать программу на си++ "Приведение матрицы к блочно-диагональному виду" то есть когда все элементы...

Определить минимальный элемент матрицы, разделить на него диагональные элементы матрицы - Turbo Pascal
Пожалуйста напишите следующую программу: Задана матрица А(3,3). Определить ее минимальный элемент. Разделить на него диагональные...

Найти сумму всех элементов матрицы и заменить ею все диагональные элементы этой матрицы - C++
Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.

2
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 170
07.04.2014, 13:39 #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
#include "stdafx.h"
#include <iostream>
typedef int MatrixType;
class TriangularMatrix
{
private:
    size_t size;
    MatrixType** body;
public:
    TriangularMatrix(size_t s)
    {
        size=s;
        body = new MatrixType*[size];
        for(int i=1;i<=size;i++)
        {
            body[i-1] = new MatrixType[i];
        }
    }
    ~TriangularMatrix()
    {
        for(int i=0;i<size;i++)
        {
            delete[] body[i];
        }
        delete[] body;
    }
    MatrixType& GetCell (int row,int column)
    {
        if (row<0||row>size||column<0||column>row) return body[0][0];
        else return body[row][column];
    }
        void SetCell (int row,int column, MatrixType value)
    {
        if(row<0||row>size||column<0||column>row) return;
        else body[row][column]=value;
    }
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    TriangularMatrix Tr = TriangularMatrix(2);
    Tr.SetCell(0,0,1);
    Tr.SetCell(1,0,2);
    Tr.SetCell(1,1,3);
    std::cout<<Tr.GetCell(0,0)<<"\t"<<Tr.GetCell(1,0)<<"\t"<<Tr.GetCell(1,1);
    Tr.SetCell(0,1,4);
    std::cout<<"\n"<<Tr.GetCell(0,1);
    return 0;
}
Добавлено через 17 часов 59 минут
Это еще не все TriangularMatrix Tr2=Tr; такая инструкция обрушит программу, двойным delete.

Добавлено через 1 час 55 минут
Вторая часть класса
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
void SetCell (int row,int column, MatrixType* value)
    {
        if(row<0||row>size||column<0||column>row) return;
        else body[row][column]=*value;
    }
TriangularMatrix(TriangularMatrix& b)
    {
        size=b.size;
        body = new MatrixType*[size];
        for(int i=0;i<size;i++)
        {
            body[i] = new MatrixType[i+1];
            for(int j=0;j<i+1;j++) body[i][j] = b.body[i][j];
        }
    }
TriangularMatrix& operator=(TriangularMatrix& arg2)
    {
        if(this!=&arg2)
        {
            size=arg2.size;
            for(int i=0;i<size;i++)
            {
                delete[] body[i];
            }
            delete[] body;
            body = new MatrixType*[size];
            for(int i=0;i<size;i++)
            {
            body[i] = new MatrixType[i+1];
            for(int j=0;j<i+1;j++) body[i][j] = arg2.body[i][j];
            }
        }
        return *this;
    }
Чтобы понимать, что тут происходит смотри на YouTube Основы C++, лекция 6 от Laur B.
1
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
07.04.2014, 16:06  [ТС] #3
Archi0, спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2014, 16:06
Привет! Вот еще темы с ответами:

Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы - PascalABC.NET
Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы. Вот, что получилось, но только...

Написать программу, которая построит графики нескольких функций на одних координатных осях - PascalABC.NET
Здравствуйте! Необходимо написать программу, которая построит графики нескольких функций на одних координатных осях. График выглядит вот...

Диагональные элементы матрицы заменить на 1 - C++
дан двумерный массив. диагональные элементы массива заменить на 1. проблема с заменой. в полученном массиве все элементы совпадают только...

Заменить диагональные элементы матрицы - C++
В результате вычислений получена квадратная матрица n*n(3*3). Нужно заменить положительные диагональные элементы числом -5. Подскажите...


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

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

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