|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите найти ошибку |
|
C/C++ - Помогите найти ошибку
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать
Матрица с наследованием
Алгоритм нахождения элементов вектора: Сумма элементов непарных рядов матрицы #include <vcl.h> #pragma hdrstop #include <math.h> #include "Unit1.h" #include <vcl.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- typedef float mat [5][5]; typedef float vec [5]; class matr {mat b; int n; int mk; public: matr(int in, int im); void set_b(mat b);}; class vect:public matr {vec d; public: vect(int in,int im); void set_v(mat b, vec d, int n, int mk);}; class func:public vect {public: func (int in, int im); float gfunc(vec d, int n, int mk);}; matr::matr(int in,int im) {n=in; mk=im;} void matr::set_b(mat b) {for(int i=0;i<n;i++) for(int j=0;j<mk;j++) b[i][j]=pow(2,i-j)*x*(fabs(i-4)+2*log*(pow(0.5+(j+1),2)));} vect::vect(int in,int im) :matr(in,im){} void vect::set_v(mat b,vec d,int n,int mk) {for(int i=0;i<n;i++) d[i]=b[i][0]-b[i][4];} func::func(int in,int im) :vect(in,im){} float func::gfunc(vec d,int n,int mk) {float s=0; for(int i=0;i<n;i++) for(int k=0;k<i;k++) s=s+log*(fabs(pow(d[i],3)-(pow(d[k],-2))); return s;} int k=5; int m=5; mat a; vec x; void __fastcall TForm1::FormCreate(TObject *Sender) {SG1->Cells[0][0]="Стлб/Стр"; for(int i=0;i<m;i++) {SG1->Cells[i+1][0]=IntToStr(i)+" столбец"; SG2->Cells[i][0]=IntToStr(i)+" столбец";} for(int j=0;j<k;j++) SG1->Cells[0][j+1]=IntToStr(j)+" строка";} //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) {matr cm(k,m); cm.set_b(a); for(int i=0;i<k;i++) for(int j=0;j<m;j++) SG1->Cells[j+1][i+1]=FloatToStrF(a[i][j],ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) {vect cv(k,m); cv.set_v(a,x,k,m); for(int j=0;j<m;j++) SG2->Cells[0][j+1]=FloatToStrF(x[j],ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) {func fg(k,m); float g=fg.gfunc(x,k,m); Edit1->Text=FloatToStrF(g,ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- На всякий случай выложил файл с формулами. |
|
Отправлено: 19:56, 01-11-2012 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать кодом оформь. никто себя уважающий эту кашу разбирать не будет
|
Отправлено: 21:23, 01-11-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Дело в том, что мы изучаем только С++ (до сих пор), собственно я не могу разобраться с вектором
class func:public vect {public: func (int in, int im); float gfunc(vec d, int n, int mk);}; matr::matr(int in,int im) {n=in; mk=im;} void matr::set_b(mat b) {for(int i=0;i<n;i++) for(int j=0;j<mk;j++) b[i][j]=pow(2,i-j)*x*(fabs(i-4)+2*log*(pow(0.5+(j+1),2)));} И в этих строчках все время выбивается ошибка |
Отправлено: 21:45, 01-11-2012 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Bokslaitner, передавай преподавателю привет, и скажи, чтобы он строже относился к оформлению кода.
Где комментарии в коде?? Какая ошибка? Разбивай сложные строки на несколько строк, вводи дополнительные переменные, отладочные выводы промежуточных значений переменных, смотри, где она "спотыкается". Я так понимаю, среда разработки C++Builder. В нем должен быть неплохой отладчик. Выполняй трассировку программы. |
------- Отправлено: 22:03, 01-11-2012 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
помогите найти ошибку | igor7 | Программирование в *nix | 1 | 07-02-2011 09:55 | |
[решено] Помогите найти ошибку | Centrinar | AutoIt | 8 | 25-05-2010 03:24 | |
CMD/BAT - [решено] Помогите найти ошибку | ofcoss | Скриптовые языки администрирования Windows | 7 | 21-07-2009 17:40 | |
Помогите найти ошибку PHP + MySQL | darksmoke | Вебмастеру | 3 | 26-11-2008 19:51 | |
C/C++ - Помогите найти ошибку | KEKS-KEKS | Программирование и базы данных | 9 | 01-11-2007 20:30 |
|