Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите найти ошибку

Ответить
Настройки темы
C/C++ - Помогите найти ошибку

Новый участник


Сообщения: 4
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: doc Формула.doc
(21.0 Kb, 3 просмотров)
Матрица с наследованием
Алгоритм нахождения элементов вектора:
Сумма элементов непарных рядов матрицы

#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
Благодарности: 39

Профиль | Отправить PM | Цитировать


кодом оформь. никто себя уважающий эту кашу разбирать не будет

Отправлено: 21:23, 01-11-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить 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


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Bokslaitner, передавай преподавателю привет, и скажи, чтобы он строже относился к оформлению кода.
Где комментарии в коде??
Какая ошибка?
Разбивай сложные строки на несколько строк, вводи дополнительные переменные, отладочные выводы промежуточных значений переменных, смотри, где она "спотыкается".
Я так понимаю, среда разработки C++Builder. В нем должен быть неплохой отладчик. Выполняй трассировку программы.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:03, 01-11-2012 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите найти ошибку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
помогите найти ошибку 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




 
Переход