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

Нужна подмога по классам (Создать класс матрица) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу табуляции функции http://www.cyberforum.ru/cpp-beginners/thread968690.html
Помогите пожалуйста написать программу табуляции функции, в школе информатики не было из за отсутствие улмпов, а в универе требуют. ( a*sin(x)+(sin(x)+cos(2x))^2)/(sin(x)+0.5pi). a=1.84 0(градусов)<=x<=72(градуса) дельта х=9( градусов)
C++ Объявление двумерного массива (не целочисленные значения) Здравствуйте. Помогите объявить двумерный массив с нецелочисленными значениями. Я хочу написать программу по симплекс-методу. http://www.cyberforum.ru/cpp-beginners/thread968677.html
C++ Реализовать добавление элементов в очередь
Помогите сделать,кто знает: Создать очередь случайных чисел. Реализовать добавление элементов в очередь, затем вывод очереди и удаление элементов из очереди, затем снова вывод очереди.
Вектор объектов пользовательского класса C++
Привет всем! Есть класс Automaton, я пытаюсь создать вектор Sample с объектами этого класса, а они ведут себя не так, как я ожидаю - создаются и удаляются до использования и после тоже, причём counter = 0 чаще всего... Похоже, речь о конструкторе копирования, подскажите, как это сделать грамотно, пожалуйста, сам уже иссяк. // код из main() Automaton::Set_dt(dt); // установка времени...
C++ Дан массив А на Н элементов (Н-константа). В массиве найти пять максимальных элементов. http://www.cyberforum.ru/cpp-beginners/thread968648.html
Дан массив А на Н элементов (Н-константа). В массиве найти пять максимальных элементов. Написать программу по шагам. Добавлено через 19 минут Пожалуйста очень важно
C++ Ошибка программы при запуске .exe файла из коммандной строки Доброе Время ! Собсно некорректно работает .exe файл проекта Visual Studio из коммандной строки windows. (Нужно с целью использования параметров argc argv). В программе обычное чтение и запись в файл. При запуске из Visual Studio работает нормально. Argc argv нужно чтобы указывать входной и выходной файл при запуске. При их вводе из коммандной строки вылетает ошибка. Пробовал считывать из... подробнее

Показать сообщение отдельно
Полька 321
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 19

Нужна подмога по классам (Создать класс матрица) - C++

04.10.2013, 11:13. Просмотров 894. Ответов 8
Метки (Все метки)

Вопщем так. мне завтра нужно сдать эту лабу. помогите пожалуйста доделать. ниже прикрепляю тект задания и часть программы, что уже сделала.
P.S. просьба,писать в том же стиле чтоли,как я) чтобы мне понятно было

Задание
Создать класс матрица. Данный класс содержит указатель на float, количество строк и столбцов и состояние ошибки. Определить конструктор без параметров, конструктор с двумя параметрами и конструктор с тремя параметрами, конструктор копирования, деструктор. Конструктор без параметров выделяет место для одного элемента и инициализирует его в ноль. Конструктор с двумя параметрами, - размерами матрицы, - выделяет место и инициализирует элементы матрицы суммой их индексов, конструктор с тремя параметрами выделяет место (первые два аргумента) и инициализирует третьим аргументом. Деструктор освобождает память. Определить методы доступа: возвращать значение элемента (i,j) и адрес этого элемента. Определить функцию печати. Определить функции, транспонирующую матрицу. Проверить работу этого класса. Предусмотреть возможность подсчета числа объектов данного типа. В случае нехватки памяти, несоответствия размерностей, выхода за пределы устанавливать код ошибки.


И вот код.
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
#include <iostream>
using namespace std;
/***********************/
/*   Создание класса mat   */
/***********************/
class mat 
{
    float *p;
    int n;
    int m;
    public:
/****************************/
/* Конструктор без параметров */
/****************************/
mat()
    {
        n=1;m=1;
        p=new float[0*0];
        *p=0;
    }
/*******************************/
/* Конструктор с 2мя параметрами */
/*******************************/
 
mat(int n1,int m1)
    {
    n=n1; m=m1;
    int i,j;
    p=new float[n*m];
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    *(p+i*m+j)=j+i;
    }
/*******************************/
/* Конструктор с 3мя параметрами */
/*******************************/
 
mat(int n1,int m1,int x1)
    {
    n=n1; m=m1; 
    int i,j;
    //int x1;
    p=new float[n*m];
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    *(p+i*m+j)=x1;
    }
/***************************/
/* Конструктор копирования  */
/***************************/
 
mat (mat &m1,int n,int m,mat &m2)
{
    int i,j;
    n= m1.n;m=m1.m;
    p = new float[n*m];
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            *(m1.p+i*m+j) = *(m2.p+i*m+j);
        
}
 
 
 
 
 
 
/**************/
/* Деструктор */
/*************/
 
~mat()
{
    delete[] p;
}
/******************/
/* Функция вывода */
/******************/
 
    void vivod()
    {
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            cout<<*(p+i*m+j)<<" ";
        }
        cout<<endl;
    }
    cout<<endl;
    }
 
};
/*******************/
/* Главная функция */
/******************/
int main() 
{
    mat m1(3,3);
    m1.vivod();
    mat m2(3,3,6);
    m2.vivod();
    mat m3(m1,3,3,m2);
    m1.vivod();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru