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

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

Войти
Регистрация
Восстановить пароль
 
FireProoF
17 / 17 / 1
Регистрация: 28.10.2012
Сообщений: 193
#1

Как задать область памяти массиву? - C++

02.12.2012, 14:30. Просмотров 264. Ответов 0
Метки нет (Все метки)

Нужно сделать обратную матрицу из данной 4на4. Для этого я хочу для начала найти её определитель. Определитель ищу по методу Доджсона, т.е. вычёркивая столбцы и строки. Ф-я determ - это переделанная ф-я исключения строк и столбцов. Вопщем вопрос в названии.
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
double determ(int** Arr, int r, int c);
int main()  
{
    cout<<"Hello!"<<endl
        <<"This program can make inverse matrix"<<endl
        <<"Press 'R'  to fill the matrix of random elements"<<endl
        <<"Or press 'C' to manually filling of the matrix"<<endl;
    char chs;
    cin>>chs;
    ////создание массива 
        int size=4;
        int **Arr;
        Arr=new int*[size];
        for(int i=0;i<size;i++)     Arr[i]=new int[size];
        if(chs=='R')    
        {
            //рандом
            srand(time(0));
            int i,j;
            cout<<"Original matrix:";
            for(i=0;i<4;i++)
            {
                cout<<endl;
                for(j=0;j<4;j++)
                {
                    int x=rand()%9+1;
                    Arr[i][j]=x;
                    cout<<Arr[i][j]<<" ";
                }
            }
            //передача в ф-ю
        determ(Arr,0,0);
        }
        else
        {
 
        }
        //
        cout<<"Now the computer will find the determinant";
        cout<<endl;
        system("PAUSE");
        return 0;
}
 
double determ(int** M, int r, int c)
{
    double det=0;
    int i,j;
    int MIN;
//поиск центра удаления
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            if(i==r && j==c)
            {
                MIN=M[i][j];
            }
 
    //удаление строк
    //зануление
    for(i=0,j=0;i<4,j<4;i++,j++)
    {
        if(M[i][j]==MIN)
        {
            int r=i;//строки
            int c=j;//столбцы
            for(c=0;c<4;c++)
            {
                M[r][c]='\0';
            }
            for(r=0;r<4;r++)
            {
                M[r][j]='\0';
            }
        }
    }
    for(i=0;i<4;i++)//массив с нулями
    {
        cout<<endl;
        for(j=0;j<4;j++)
        {
            cout<<M[i][j]<<" ";
        }
    }
    //показываю результат и переписываю в новую матрицу
    cout<<endl;
        int size=3;
        int **new_M;
        new_M=new int*[size];
        for(int i=0;i<size;i++)     new_M[i]=new int[size];
    for(i=0;i<4;i++)
    {
        cout<<endl;
        for(j=0;j<4;j++)
        {
            if(M[i][j]!='\0')   
            {
                cout<<M[i][j]<<" ";
                new_M[i][j]=M[i][j];
            }
        }
    }
    cout<<"result"<<endl;
    for(i=0;i<3;i++)
    {
        cout<<endl;
        for(j=0;j<3;j++)
        {
            cout<<new_M[i][j]<<" ";
        }
    }
    return det;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как задать область памяти массиву? (C++):

Добавление памяти динамическому массиву - C++
пытаюсь доканать динамические массивы (vector не предлагать, с ним все ок). суть задачи. есть массив структур, возникает необходимость...

Создать класс-шаблон, откладывающий выделение динамической памяти до первого реального обращения к массиву - C++
нужно создать класс-шаблон, который откладывает выделение динамической памяти до первого реального обращения к массиву также нужно ...

Копирование область памяти - C++
Здравствуйте, у меня не получается прочитать/скопировать память в переменную. Я делаю .dll, так вот записать значения в адрес я смог, а...

Разделяемая область памяти - C++
Здравствуйте. Нам задали такое задание - написать программку(ки, ибо больше одного запущенного процесса) и запустить, чтобы выполнилось...

Указатель на конкретную область памяти - C++
Есть такая программа ArtMoney, с её помощью мы ищем адрес в памяти, затем изменяем значение по указателю, чтобы изменить количество игровой...

Динамическая область памяти функции new - C++
Чистый Си У кого есть варианты с пояснениями Написать пользовательскую функцию, решающую указанную ниже задачу. Массив создается в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 14:30
Привет! Вот еще темы с ответами:

Можно ли несколько раз делитить область памяти? - C++
Собственно, чреват ли ошибками код: int *a; a = new int; a = 1; a = 2; delete a; delete a;

Закачка файла и перевод в область памяти типа PVOID - C++
В общем моя программа скачивает библиотеку, грузит ее в память и из памяти библиотека грузится в процесс посредством manual mapping. Но...

Bin файл из Modbus. Прочитать из файла область памяти - C++
Доброго времени суток! Подскажите пожалуйста, у меня есть bin-файл из которого нужно достать данные полученные устройством и хранящиеся...

Возможно ли узнать, существуют ли другие указатели на данную область памяти? - C++
Возможно ли узнать, существуют ли другие указатели на данную область памяти? например: char * pChar = new char; //init ...


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

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

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