Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 22

Класс матриц

28.09.2015, 22:59. Показов 566. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как переделать метод ввода матрицы в обычную функцию вне класса, и как ее вызывать в main.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Matrix // класс - матрицы динамического размера
{
private: // закрытые свойства
    int n; // количество строк и столбцов
    int **matr;
...
 
void Filling() // метод ввода матрицы
    {
        for (int i=0; i<n; i++)
        {
            for (int j=0;j<n;j++)
            {
                //matr[i][j]=(int)rand();
                scanf("%d", matr[i]+j);
            }
        }
        return;
    }
};
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2015, 22:59
Ответы с готовыми решениями:

Базовый класс Complex и производный класс для реализации квадратных матриц
1) Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними:...

Класс матриц
Пишу класс для работы с матрицами . Не могу понять , почему не работают функции power и swap_rows (функции возвращают ту же матрицу без...

Класс матриц
Нужно описать класс матриц, реализовать функции сложения, умножения, вычитания, сравнения матриц и проверки на диагональность (проект 3-х...

6
0 / 0 / 0
Регистрация: 03.08.2015
Сообщений: 42
28.09.2015, 23:02
а класс в исходнике вообще присутствовать должен?
и да, заключайте код в рамки, дабы было удобнее его воспринимать.
0
0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 22
28.09.2015, 23:08  [ТС]
Да, класс присутствовать должен, работа рассчитана именно на создание классов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Matrix // класс - матрицы динамического размера
{
private: // закрытые свойства
int n; // количество строк и столбцов
int **matr;
...
 
void Filling() // метод ввода матрицы
{
for (int i=0; i<n; i++)
{
for (int j=0;j<n;j++)
{
//matr[i][j]=(int)rand();
scanf("%d", matr[i]+j);
}
}
return;
}
};
0
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
28.09.2015, 23:16
А почему бы не хранить матрицу как int* ? Раз уж размерность одна. Ну да ладно.

Цитата Сообщение от ylianova Посмотреть сообщение
обычную функцию вне класса
Либо объявить в классе функцию, которая будет добавлять новый элемент в массив, раз уж через scanf, либо записать ввод в промежуточный массив, потом передать его в Matrix::Fill(int *val) или типа того.
0
0 / 0 / 0
Регистрация: 03.08.2015
Сообщений: 42
28.09.2015, 23:35
Вот вам функция заполнения матрицы и ее вызов в main
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
void matrix(int A[10][10], int& n);
//---------------------------------------------------------------------------
 
int main ()
{
int mas[10][10],n;
cout<<"Enter n: ";
cin>>n;
matrix (mas, n);
 for (int i=0; i<n; i++)
   {for (int j=0;j<n;j++)
      {cout<<mas[i][j]<<" ";}
   }
getch();
return 0;
}
 
 
void matrix(int A[10][10], int& n)
{
for (int i=0; i<n; i++)
   {for (int j=0;j<n;j++)
      {cin>>A[i][j];}
   }
};
//---------------------------------------------------------------------------
а по поводу класса - определитесь, чего вы от него хотите. не вижу смысла в классе, лишенном функций-членов.
0
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
28.09.2015, 23:41
Что вам всем так не нравится хранить матрицу в линейном массиве?
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
29.09.2015, 00:00
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
#include <iostream>
 
using namespace std;
 
class Matrix{
        int **matr;
        unsigned row,col;
    public:
        Matrix(const int,const int);
        ~Matrix();
        void Filling();
        void Show();
 
};
 
Matrix::Matrix(const int Row_, const int Col_):row(Row_),col(Col_){
    matr = new int*[row];
    for (unsigned i=0;i<row;++i) matr[i] = new int[col];
}
 
Matrix::~Matrix(){
    for (unsigned i=0;i<row;++i) delete []matr[i];
    delete []matr;
}
 
void Matrix::Filling(){
    for (unsigned i=0;i<row;++i){
        for (unsigned j=0;j<col;++j){
            cin>>matr[i][j];
        }
    }
}
 
void Matrix::Show(){
    for (unsigned i=0;i<row;++i){
        for (unsigned j=0;j<col;j++){
            cout<<matr[i][j]<<"\t";
        }   cout<<"\n";
    }
}
 
int main(){
    Matrix Arr(3,3);
    Arr.Filling();
    Arr.Show();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2015, 00:00
Помогаю со студенческими работами здесь

Класс матриц
есть рабочий класс матриц. Все работает отлично, но надо сделать функцию или перегрузить оператор &gt;&gt; для считывания матрицы из файла....

Класс матриц
Пытаюсь написать класс матриц.Никак не удаётся перегрузить оператор = . Выдаёт : ambiguous overload for 'operator=' in 'k = b' ...

Класс матриц
Задание звучит так : разработать класс для работы с матрицами 2х2 . Прога написана , отлично работает. Осталось реализовать одну функцию...

Доработать класс матриц
Всем привет. Пытаюсь разработать класс матриц, чтобы перегрузить основные операции. Помогите доработать. #include &lt;iostream&gt; ...

Реализовать класс матриц, СРОЧНО!
Помогите реализовать класс матриц, очень надо #ifndef MATRIX_H #define MATRIX_H 1 #include &lt;iostream&gt; class...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru