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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 20:41   #1
Жужа
Новичок
Джуниор
 
Аватар для Жужа
 
Регистрация: 20.10.2009
Сообщений: 15
По умолчанию Как готовую программу в С++ перевести в форму?

Нужно найти определитель матрицы третьего порядка.Это программа. Как мне ее переделать в форму? Чтобы там были всякие лабелы и эдиты?

Код:
void InputMatr(int matr[WIDTH][WIDTH]) {
 for (int i = 0; i < WIDTH; i++) {
  for (int j = 0; j < WIDTH; j++) {
   cout << "\nInput matr[" << i << "," << j << "]: ";
   cin >> matr[i][j];
  }
 }
};
 
int CalcDet(int matr[WIDTH][WIDTH]) {
 int DET = matr[0][0]*matr[1][1]*matr[2][2] -
    matr[0][0]*matr[1][2]*matr[2][1] -
    matr[1][0]*matr[0][1]*matr[2][2] +
    matr[1][0]*matr[0][2]*matr[2][1] +
    matr[2][0]*matr[0][1]*matr[1][2] -
    matr[2][0]*matr[1][1]*matr[0][2];
 return DET;
};
int main(void)
{
 int matr[WIDTH][WIDTH];
 InputMatr(matr);
 cout << "\nDeterminant of matrix = " << CalcDet(matr);
 return 0;
Замечание модератора: Используйте тег [CODE]

Последний раз редактировалось Rembo; 20.10.2009 в 20:49.
Жужа вне форума Ответить с цитированием
Старый 21.10.2009, 09:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я првильно понимаю что матрицу тоже нужно вводить ручками?

Примерно так:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
 int matr[3][3];

int CalcDet(int matr[3][3]) {
 int DET = matr[0][0]*matr[1][1]*matr[2][2] -
    matr[0][0]*matr[1][2]*matr[2][1] -
    matr[1][0]*matr[0][1]*matr[2][2] +
    matr[1][0]*matr[0][2]*matr[2][1] +
    matr[2][0]*matr[0][1]*matr[1][2] -
    matr[2][0]*matr[1][1]*matr[0][2];
 return DET;
};

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i = 0; i < StringGrid1->RowCount; i++) {
  for (int j = 0; j < StringGrid1->ColCount; j++) {
   //cout << "\nInput matr[" << i << "," << j << "]: ";
   matr[i][j]=StrToInt(StringGrid1->Cells[i][j]);
  }
 }
 Caption=IntToStr(CalcDet(matr));
}
//---------------------------------------------------------------------------
Учитывая что нужно включить для Грида режим редактирования.
I'm learning to live...

Последний раз редактировалось Stilet; 21.10.2009 в 09:41.
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 14:11   #3
Жужа
Новичок
Джуниор
 
Аватар для Жужа
 
Регистрация: 20.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я првильно понимаю что матрицу тоже нужно вводить ручками?
Да конечно.

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я првильно понимаю что матрицу тоже нужно вводить ручками?

Примерно так:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
 int matr[3][3];

int CalcDet(int matr[3][3]) {
 int DET = matr[0][0]*matr[1][1]*matr[2][2] -
    matr[0][0]*matr[1][2]*matr[2][1] -
    matr[1][0]*matr[0][1]*matr[2][2] +
    matr[1][0]*matr[0][2]*matr[2][1] +
    matr[2][0]*matr[0][1]*matr[1][2] -
    matr[2][0]*matr[1][1]*matr[0][2];
 return DET;
};

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i = 0; i < StringGrid1->RowCount; i++) {
  for (int j = 0; j < StringGrid1->ColCount; j++) {
   //cout << "\nInput matr[" << i << "," << j << "]: ";
   matr[i][j]=StrToInt(StringGrid1->Cells[i][j]);
  }
 }
 Caption=IntToStr(CalcDet(matr));
}
//---------------------------------------------------------------------------
Учитывая что нужно включить для Грида режим редактирования.
А где лабелы пишутся и эдиты?

Что такое Грид?
Жужа вне форума Ответить с цитированием
Старый 21.10.2009, 14:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А где лабелы пишутся и эдиты?
А я их решил не ставить. Вместо них поставил на форму TStringGrid - он хоть на матрицу похож. Да и в цикле по нему проще пройтись, ибо это двумерный массив ячеек
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 14:31   #5
Жужа
Новичок
Джуниор
 
Аватар для Жужа
 
Регистрация: 20.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А я их решил не ставить. Вместо них поставил на форму TStringGrid - он хоть на матрицу похож. Да и в цикле по нему проще пройтись, ибо это двумерный массив ячеек
а как без лабелов то? я так не умею... А если вместо TStringGrid написать лабелы? будет работать?
Жужа вне форума Ответить с цитированием
Старый 21.10.2009, 14:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
написать лабелы? будет работать?
Много писать придется
Код разрастется в три раза.

Я лично пас такой антиоптимизацией заниматься - я элегантные программы люблю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 15:07   #7
Жужа
Новичок
Джуниор
 
Аватар для Жужа
 
Регистрация: 20.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Много писать придется
Код разрастется в три раза.

Я лично пас такой антиоптимизацией заниматься - я элегантные программы люблю.
жаль... обьясните, если не трудно где тут должен быть лабел и его друзья? Препод не примет у меня программу в таком виде
Жужа вне форума Ответить с цитированием
Старый 21.10.2009, 15:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уф...
Это действительно трудно обьяснить. Если так в думаться для каждого элемента массива нужно кинуть свой Эдит. Их будет 9
И в программе прописать некую функцию наполнения массива вместо:
Код:
  for (int j = 0; j < StringGrid1->ColCount; j++) {
   //cout << "\nInput matr[" << i << "," << j << "]: ";
   matr[i][j]=StrToInt(StringGrid1->Cells[i][j]);
  }
Что-то типа:
Код:
void aga() {
 matr[0][0]:=StrToInt(Edit1->Text);
 matr[0][1]:=StrToInt(Edit2->Text);
 /// и так еще восемь раз
};
А потом эту функу вызывать в:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 aga();
 Caption=IntToStr(CalcDet(matr));
}
Ясен смысл?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 18:43   #9
Жужа
Новичок
Джуниор
 
Аватар для Жужа
 
Регистрация: 20.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Уф...
Это действительно трудно обьяснить. Если так в думаться для каждого элемента массива нужно кинуть свой Эдит. Их будет 9
И в программе прописать некую функцию наполнения массива вместо:
Код:
  for (int j = 0; j < StringGrid1->ColCount; j++) {
   //cout << "\nInput matr[" << i << "," << j << "]: ";
   matr[i][j]=StrToInt(StringGrid1->Cells[i][j]);
  }
Что-то типа:
Код:
void aga() {
 matr[0][0]:=StrToInt(Edit1->Text);
 matr[0][1]:=StrToInt(Edit2->Text);
 /// и так еще восемь раз
};
А потом эту функу вызывать в:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 aga();
 Caption=IntToStr(CalcDet(matr));
}
Ясен смысл?
ясен.... (Какой ужс...)
Жужа вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из нескольких файлов *.xls выбрать нужные данные суммировать их и скопировать в уже готовую форму Иван123456 Microsoft Office Excel 2 07.08.2009 21:50
Как подключить готовую макро-функцию? hithlin Microsoft Office Word 0 18.05.2009 11:20
Help плиз! Нужно перевести текст в программу!!! XzB Помощь студентам 1 07.06.2008 11:54
Как изменить стандартную форму на форму любой сложности QwErEn Общие вопросы Delphi 9 08.06.2007 11:44