• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Класс матрица

  • Автор темы Guest
  • Дата начала
G

Guest

Написала программу, она работает, только ничего не вводит и не выводит :) Резутьтат одни нули.
Условие задачи: Построить программу для работы с классом - квадратными матрицами. Структура должна включать соответствующие поля: порядок, набор коэффициентов. Программа должна обеспечивать простейшие функции для работы с данными структурами: ввод матрицы, транспонирование матрицы, вывод матрицы в удобной форме.
Помогите пожалуйста, очень надо!!!


[codebox]#include <iostream.h>
#include <conio.h>

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

public:
matrix ();

~matrix(){};

void vivod(void);

void transp(void);

};

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

int **a=new int*[n];
for (i=0; i<n; i++)
a=new int[n];

cout<<"Vvedite elementi massiva A:\n"<<"\n";
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cin>>a[j];
}
cout<<"\n";
}

void matrix::vivod()
{
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<a[j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}

void matrix::transp()
{
for (j=0; j<n; j++)
{
for (i=0; i<n; i++)
cout<<a[j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}

main ()
{
clrscr();
int p;
matrix mat;
mat.vivod();
mat.transp();
cin>>p;
return (0);
}[/codebox]
 
G

Guest

Подскажите пожалуйста как исправить, потому что я тоже думала что из-зи этого, но исправить не получаеться :(
Очень надо! Подалуйста!!!
 
G

Guest

Я попробовала исправть ошибку, вроде работает, только первый элемент всегда 0 :)

[codebox]#include <iostream.h>
#include <conio.h>

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

public:
matrix ();

~matrix(){};

void vivod(void);

void transp(void);

};

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[j];
}
cout<<"\n";
}

void matrix::vivod()
{
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<a[j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}

void matrix::transp()
{
for (j=0; j<n; j++)
{
for (i=0; i<n; i++)
cout<<a[j]<<" ";
cout<<"\n";
}
cout<<"\n";
return;
}

main ()
{
clrscr();
int p;
matrix mat;
mat.vivod();
mat.transp();
cin>>p;
return (0);
}
{[/codebox]

Помогите пожалуйста:(
 
Y

Yason

Удивительно, что вообще работает, потому что выделение памяти для массива зачем-то убрали, и куда там сейчас что пишется - непонятно...
 
G

Guest

Yason, какие у тебя идеи как можно исправить ошибку в программе, в первом варианте?
 
Y

Yason

Всего лишь удалить три буквы :)

P.S. Это если не считать архитектурных косяков типа ввода данных в конструкторе и непонятно зачем нужной int p в main.
 
G

Guest

зачем нужной int p в main.
Чтоб была задержка на экране, по-моему самый простой способ:lol:

Огромное всем СПАСИБО, заработало!!! Программа будет еще разрбатывать, если возникнут вопросы надеюсь вы мне поможите:)))
Спасибки:)))!!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!