Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 21:49   #1
Soloma
Новичок
Джуниор
 
Регистрация: 05.12.2008
Сообщений: 1
По умолчанию Классы в C++

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

#include <iostream.h>
#include <conio.h>

class matrix
{
int n,i,j,**a;

public:
matrix ();

~matrix(){};

void vivod(void);

void transp(void);

};
matrix::matrix()
{
cout<<"Vvedite poryadok matrici:"<<endl;
cin>>n;

cout<<"Vvedite elementi massiva A:\n"<<"\n";
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cin>>a[i][j];
}
cout<<"\n";
}
void matrix::vivod()
{
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}
void matrix::transp()
{
for (j=0; j<n; j++)
{
for (i=0; i<n; i++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}
main ()
{
clrscr();
int p;
matrix mat;
mat.vivod();
mat.transp();
cin>>p;
return (0);
}
Soloma вне форума Ответить с цитированием
Старый 05.12.2008, 22:43   #2
_alexey_
Пользователь
 
Регистрация: 04.12.2008
Сообщений: 13
По умолчанию

вам надо в конструкторе сначала выделить память под матрицу, а потом уже заполнять её занчениями.
Код:
...
cin >> n;
a = new int [n*n];
...
ну и понятное дело, освободить потом эту память в деструкторе.
_alexey_ вне форума Ответить с цитированием
Старый 04.06.2009, 21:49   #3
Shturmovik
Новичок
Джуниор
 
Регистрация: 04.06.2009
Сообщений: 2
По умолчанию

У меня тоже проблемы с классами, помогите пожалуйста...
Есть такая задача:
Разработать программу, реализующую механизмы перегрузки функций и операций для объектов, введенных пользователем.
Создайте функцию sroot ( ), которая возвращает квадратный корень своего аргумента. Перегрузите sroot ( ) тремя способами: чтобы получить квадратный корень целого, длинного целого и числа с плавающей точкой двойной точности. Для подсчета квадратного корня используйте стандартную библиотечную функцию sqrt ( ).

Без использования классов я решил а надо с классами(на Borland С++ 3.1), причем чтоб данные вводил пользователь....Я не понимаю как это сделать...есть ли такой тип данных который определяется самостоятельно?...или как её ещё решить?...
Вот решение без классов:
#include<iostream.h>
#include <math.h>
#include <conio.h>

float sroot(int x)
{
return sqrt(x);
}

float sroot(long int x)
{
return sqrt(x);
}
float sroot(double x)
{
return sqrt(x);
}

void main()
{
clrscr();
int a;
long int b;
double c;
cout<<"\nVvedite celoe chislo :";
cin>>a;
cout<<"\nKvadratniy koren celogo= "<<sroot(a);
cout<<"\n\nVvedite dlinnoe celoe chislo :";
cin>>b;
cout<<"\nKvadratniy koren dlinnogo celogo= "<<sroot(b);
cout<<"\n\nVvedite chislo s plavaushey tochkoy dvoynoy tochnocti :";
cin>>c;
cout<<"\nKvadratniy koren chisla s plavaushey tochkoy dvoynoy tochnocti="<<sroot(c);
getch ();
}
Заранее спасибо.
Shturmovik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы MaxiMILLION Помощь студентам 4 12.10.2008 14:05
Классы Старовъръ Общие вопросы Delphi 4 26.06.2008 17:00
классы ShenDy Общие вопросы C/C++ 1 12.04.2008 14:01
Классы Voucik Общие вопросы C/C++ 2 22.01.2008 17:03