Реклама на hackersoft.ru Реклама на hackersoft.ru

Вернуться   Форумы Hackersoft > Околотематические разделы > Для разработчиков
CHAT Справка Пользователи Доска почета Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы
Старый 14.03.2010, 00:43   #1
Zimper
intermediate 
 
Аватар для Zimper
 
Регистрация: 12.04.2008
Сообщений: 740
Вес репутации: 22 Zimper специалистZimper специалистZimper специалистZimper специалистZimper специалистZimper специалистZimper специалист
Депозит: 0$
Вы сказали Спасибо: 28
Поблагодарили 346 раз(а) в 167 сообщениях
Алгоритм простой,так что без коментариев)))

//Кнопка очистки
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Memo1->Clear();
int i,j;
for(j=0;j<3;j++)
{
  StringGrid2->Cells[0][j]="";


  for(i=0;i<3;i++)
   {
    StringGrid1->Cells[i][j]="";

 }
}
}
//Кнопка решить
Код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i,j;
int failA=0;
int failB=0;
for(j=0;j<3;j++)
{
  if(strlen(StringGrid2->Cells[0][j].c_str(((<1)
   {
     failB++;
    }

  for(i=0;i<3;i++)
   {
    if(strlen(StringGrid1->Cells[i][j].c_str(((<1)
   {
     failA++;
    }
 }
}

   if(failA==0 && failB==0)
    {
      double a11=StringGrid1->Cells[0][0].ToDouble();
      double a12=StringGrid1->Cells[1][0].ToDouble();
      double a13=StringGrid1->Cells[2][0].ToDouble();
      double a21=StringGrid1->Cells[0][1].ToDouble();
      double a22=StringGrid1->Cells[1][1].ToDouble();
      double a23=StringGrid1->Cells[2][1].ToDouble();
      double a31=StringGrid1->Cells[0][2].ToDouble();
      double a32=StringGrid1->Cells[1][2].ToDouble();
      double a33=StringGrid1->Cells[2][2].ToDouble();
      double b1=StringGrid2->Cells[0][0].ToDouble();
      double b2=StringGrid2->Cells[0][1].ToDouble();
      double b3=StringGrid2->Cells[0][2].ToDouble();
      double x1,x2,x3;
      double delta=(a11*a22*a33)-(a11*a23*a32)-(a12*a21*a33)+(a12*a23*a31)+(a13*a21*a32)-(a13*a22*a31);
      char tempx[10];
      char temp[10];
      Form1->Memo1->Text="det";
      Form1->Memo1->Text=Form1->Memo1->Text+"="+"a11*a22*a33-a11*a23*a32-a12*a21*a33+a12*a23*a31+a13*a11*a32-a13*a22*+a31=";
      Form1->Memo1->Text=Form1->Memo1->Text+"("+a11+"*"+a22+"*"+a33+")-("+a11+"*"+a23+"*"+a32+")-("+a12+"*"+a21+"*"+a33+")+("+a12+"*"+a23+"*"+a31+")+("+a13+"*"+a21+"*"+a32+")-("+a13+"*"+a22+"*"+a31+")";
      Form1->Memo1->Text=Form1->Memo1->Text+"="+floor(delta*10)/10;
      Form1->Memo1->Lines->Add(" ");
      strcpy(temp,"det=");
      strcat(temp,FloatToStr(floor(delta*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(temp);
      if(delta==0)
      {
      Form1->Memo1->Lines->Add("*******");
      Form1->Memo1->Lines->Add("stoped");
      }
      else
      {
      double delta1=(b1*a22*a33)-(b1*a23*a32)-(a12*b2*a33)+(a12*a23*b3)+(a13*b2*a32)-(a13*a22*b3);
      double delta2=(a11*b2*a33)-(a11*a23*b3)-(b1*a21*a33)+(b1*a23*a31)+(a13*a21*b3)-(a13*b2*a31);
      double delta3=(a11*a22*b3)-(a11*b2*a32)-(a12*a21*b3)+(a12*b2*a31)+(b1*a21*a32)-(b1*a22*a31);
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"det1="+"b1*a22*a33-b1*a23*a32-a12*b2*a33+a12*a23*b3+a13*a11*a32-a13*a22*+b3=";
      Form1->Memo1->Text=Form1->Memo1->Text+"("+b1+"*"+a22+"*"+a33+")-("+b1+"*"+a23+"*"+a32+")-("+a12+"*"+b2+"*"+a33+")+("+a12+"*"+a23+"*"+b3+")+("+a13+"*"+b2+"*"+a32+")-("+a13+"*"+a22+"*"+b3+")";
      Form1->Memo1->Text=Form1->Memo1->Text+"="+floor(delta1*10)/10;
      Form1->Memo1->Lines->Add(" ");
      strcpy(temp,"det1=");
      strcat(temp,FloatToStr(floor(delta1*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(temp);
      x1=delta1/delta;
      strcpy(tempx,"x1=");
      strcat(tempx,FloatToStr(floor(x1*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"x1="+delta1+"/"+delta;
      Form1->Memo1->Lines->Add(tempx);




      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"det2="+"a11*b2*a33-a11*a23*b3-b1*a21*a33+b2*a23*a31+a13*a11*b3-a13*b2*+a31=";
      Form1->Memo1->Text=Form1->Memo1->Text+"("+a11+"*"+b2+"*"+a33+")-("+a11+"*"+a23+"*"+b3+")-("+b1+"*"+a21+"*"+a33+")+("+b1+"*"+a23+"*"+a31+")+("+a13+"*"+a21+"*"+b3+")-("+a13+"*"+b2+"*"+a31+")";
      Form1->Memo1->Text=Form1->Memo1->Text+"="+floor(delta2*10)/10;
      Form1->Memo1->Lines->Add(" ");
      strcpy(temp,"det2=");
      strcat(temp,FloatToStr(floor(delta2*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(temp);
      x2=delta2/delta;
      strcpy(tempx,"x2=");
      strcat(tempx,FloatToStr(floor(x2*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"x2="+delta2+"/"+delta;
      Form1->Memo1->Lines->Add(tempx);




      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"det3="+"a11*a22*b3-a11*b2*a32-a12*a21*b3+a12*b2*a31+b1*a11*a32-b1*a22*+a31=";
      Form1->Memo1->Text=Form1->Memo1->Text+"("+a11+"*"+a22+"*"+b3+")-("+a11+"*"+b2+"*"+a32+")-("+a12+"*"+a21+"*"+b3+")+("+a12+"*"+b2+"*"+a31+")+("+b1+"*"+a21+"*"+a32+")-("+b1+"*"+a22+"*"+a31+")";
      Form1->Memo1->Text=Form1->Memo1->Text+"="+floor(delta3*10)/10;
      Form1->Memo1->Lines->Add(" ");
      strcpy(temp,"det3=");
      strcat(temp,FloatToStr(floor(delta3*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(temp);
      x3=delta3/delta;
      strcpy(tempx,"x3=");
      strcat(tempx,FloatToStr(floor(x3*10)/10).c_str(((;
      Form1->Memo1->Lines->Add(" ");
      Form1->Memo1->Text=Form1->Memo1->Text+"x3="+delta3+"/"+delta;
      Form1->Memo1->Lines->Add(tempx);
      }

    }
  else
    {
      if(failA!=0)
      {
       MessageBox(NULL,"Заповніть правильно матрицю А!","Увага!",MB_ICONSTOP);
      }

      if(failB!=0)
      {
       MessageBox(NULL,"Заповніть правильно матрицю B!","Увага!",MB_ICONSTOP);
      }
    }
}

Последний раз редактировалось Zimper, 12.03.2011 в 16:50.
Zimper вне форума   Ответить с цитированием
Благодарности Zimper от:
Старый 14.03.2010, 11:41   #2
Punisher
intermediate 
 
Регистрация: 13.05.2008
Прописка: localhost
Сообщений: 540
Вес репутации: 14 Punisher продвинутыйPunisher продвинутыйPunisher продвинутыйPunisher продвинутый
Депозит: 0$
Вы сказали Спасибо: 87
Поблагодарили 151 раз(а) в 101 сообщениях
Было бы неплохо написать компилятор, который ты использовал. Так как видно, что это не чистый С++, а что-то похожее на Борланд.

Punisher вне форума   Ответить с цитированием
Старый 14.03.2010, 12:20   #3
KollinZ
professional 
 
Аватар для KollinZ
 
Регистрация: 09.01.2009
Сообщений: 1,833
Вес репутации: 42 KollinZ специалистKollinZ специалистKollinZ специалистKollinZ специалистKollinZ специалистKollinZ специалист
Депозит: 0$
Вы сказали Спасибо: 382
Поблагодарили 373 раз(а) в 233 сообщениях
тока вот некоторые переменные не заданы:
Код:
[C++ Error] Unit1.cpp(43): E2188 Expression syntax
[C++ Error] Unit1.cpp(48): E2377 If statement missing )
[C++ Error] Unit1.cpp(48): E2379 Statement missing ;
[C++ Error] Unit1.cpp(78): E2268 Call to undefined function 'floor'
[C++ Error] Unit1.cpp(81): E2188 Expression syntax
[C++ Error] Unit1.cpp(100): E2188 Expression syntax
[C++ Error] Unit1.cpp(104): E2188 Expression syntax
[C++ Error] Unit1.cpp(119): E2188 Expression syntax
[C++ Error] Unit1.cpp(123): E2188 Expression syntax
[C++ Error] Unit1.cpp(138): E2188 Expression syntax
[C++ Error] Unit1.cpp(142): E2188 Expression syntax
[C++ Warning] Unit1.cpp(148): W8004 'x3' is assigned a value that is never used
[C++ Warning] Unit1.cpp(148): W8004 'x2' is assigned a value that is never used
[C++ Warning] Unit1.cpp(148): W8004 'x1' is assigned a value that is never used
борланд компилятор...
KollinZ вне форума   Ответить с цитированием
Старый 14.03.2010, 14:36   #4
Zimper
intermediate 
 
Аватар для Zimper
 
Регистрация: 12.04.2008
Сообщений: 740
Вес репутации: 22 Zimper специалистZimper специалистZimper специалистZimper специалистZimper специалистZimper специалистZimper специалист
Депозит: 0$
Вы сказали Спасибо: 28
Поблагодарили 346 раз(а) в 167 сообщениях
Код:
#include <math.h>
Компилятор Борланд

добавлено через 6 минут
Сорс

Последний раз редактировалось Zimper, 14.03.2010 в 14:43. Причина: Добавлено сообщение
Zimper вне форума   Ответить с цитированием
Благодарности Zimper от:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:22.


© 2005 — +∞ Hackersoft. Все и вся защищены.
Публичная оферта | Правила форума | Реклама на сайте
Powered by vBulletin®©™ Jelsoft®©™ Enterprises Ltd. Перевод: zCarot.
Реклама на hackersoft.ru Реклама на hackersoft.ru