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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2007, 14:58   #1
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию Нужно переделать код с Delphi на C++ Builder

Ребят, есть программа для работы с матрицами написанная на Delphi, её код необходимо переделать чтоб она работала на C++ Builder 6.

Вот код приложения на Delphi начиная с раздела глобальных переменных:
Код:
var
  n,A_r,A_c,B_r,B_c:integer;
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
StatusBar1.Panels[0].Text:='Ìàòðèöà ñ èñïîëüçîâàíèåì StringGrid';
StatusBar1.Panels[1].Text:=Timetostr(time);
StatusBar1.Panels[2].Text:='Áåëåâ Â.Þ, Æàáèí Ï.À';

end;

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:=edit5.text;
B_r:=StrToInt(Copy(S,1,Pos(',',s)-1));
B_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
StringGrid2.ColCount:=B_c;
StringGrid2.RowCount:=B_r;
StringGrid2.height:=B_r*StringGrid1.DefaultRowHeight+10;
StringGrid2.Width:=B_c*StringGrid1.DefaultColWidth+10;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
AboutBox.show;
end;

procedure TForm1.Button5Click(Sender: TObject);
AboutBox.Show;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
AboutBox.Show;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
StatusBar2.Panels[0].Text:='Ìàòðèöà ñ èñïîëüçîâàíèåì Memo';
StatusBar2.Panels[1].Text:=Timetostr(time);
StatusBar2.Panels[2].Text:='Áåëåâ Â.Þ, Æàáèí Ï.À';
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
StatusBar3.Panels[0].Text:='Ìàòðèöà ñ çàãðóçêîé èç ôàéëà';
StatusBar3.Panels[1].Text:=Timetostr(time);
StatusBar3.Panels[2].Text:='Áåëåâ Â.Þ, Æàáèí Ï.À';
end;

procedure TForm1.Button7Click(Sender: TObject);
var s:string;


begin
s:=edit1.text;
A_r:=StrToInt(Copy(S,1,Pos(',',s)-1));
A_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
B_r:=A_c;
StringGrid1.ColCount:=A_c;
StringGrid1.RowCount:=A_r;
StringGrid1.height:=A_r*StringGrid1.DefaultRowHeight+10;
StringGrid1.Width:=A_c*StringGrid1.DefaultColWidth+10;

end;

procedure TForm1.Button8Click(Sender: TObject);
var
i,j,ad,s,k:integer;
begin
for i:=0 to A_r-1 do
for j:=0 to A_c-1 do
begin
ad:=0;
for k := 0 to B_r-1 do

ad:=ad+strtoint(StringGrid1.Cells[k,i]) * strtoint(StringGrid2.Cells[j,k]);
StringGrid3.ColCount:=ad;
StringGrid3.RowCount:=ad;
StringGrid3.height:=ad*StringGrid1.DefaultRowHeight+10;
StringGrid3.Width:=ad*StringGrid1.DefaultColWidth+10;
StringGrid3.Cells[j,i]:=Inttostr(ad);

end;
end;

procedure TForm1.Button9Click(Sender: TObject);
var
a:array [1..10,1..10] of integer;
b:array [1..10,1..10] of integer;
i,j,i1,j1,k,k1,rez,l,i2,j2,A_r,A_c,B_r,B_c:integer;
str,s,s1:string;
begin
Memo3.Clear;
s:=Edit2.Text;
A_r:=StrToInt(Copy(S,1,Pos(',',s)-1));
A_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
B_r:=A_c;
s:=Edit6.Text;
B_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
for i := 1 to A_r do
begin
s:=Memo1.Lines.Strings[i-1];
if s[Length(s)]<>' ' then s:=s+' ';
for j := 1 to A_c do
begin
s1:=Copy(s,1,Pos(' ',s)-1);
a[i,j]:=StrToInt(s1);
delete(s,1,Length(s1)+1);
end;
end;
for i := 1 to B_r do
begin
s:=Memo4.Lines.Strings[i-1];
if s[Length(s)]<>' ' then s:=s+' ';
for j := 1 to B_c do
begin
s1:=Copy(s,1,Pos(' ',s)-1);
b[i,j]:=StrToInt(s1);
delete(s,1,Length(s1)+1);
end;
end;
S:='';
for i := 1 to A_r do
begin
for j := 1 to B_c do
begin
rez:=0;
for k := 1 to B_r do
rez:=rez+a[i][k]*b[k][j];
s:=s+IntToStr(rez)+' ';
end;

Memo3.Lines.Add(s);
s:='';
end;
end;

procedure TForm1.Button10Click(Sender: TObject);
var
i,j,k,rez,X,Y :Integer;
s,s1:string;
f,f1:textFile;
a:array [1..10,1..10] of integer;
b:array [1..10,1..10] of integer;
begin
Memo2.Clear;
Memo6.Clear;
Memo2.Lines.LoadFromFile(Edit3.Text);
Memo5.Clear;
Memo5.Lines.LoadFromFile(Edit7.Text);
s:=Edit4.Text;
A_r:=StrToInt(Copy(S,1,Pos(',',s)-1));
A_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
B_r:=A_c;
s:=Edit8.Text;
B_c:=StrToInt(Copy(S,Pos(',',s)+1,Length(s)));
for i := 1 to A_r do
begin
s:=Memo2.Lines.Strings[i-1];
if s[Length(s)]<>' ' then s:=s+' ';
for j := 1 to A_c do
begin
s1:=Copy(s,1,Pos(' ',s)-1);
a[i,j]:=StrToInt(s1);
delete(s,1,Length(s1)+1);
end;
end;
for i := 1 to B_r do
begin
s:=Memo5.Lines.Strings[i-1];
if s[Length(s)]<>' ' then s:=s+' ';
for j := 1 to B_c do
begin
s1:=Copy(s,1,Pos(' ',s)-1);
b[i,j]:=StrToInt(s1);
delete(s,1,Length(s1)+1);
end;
end;S:='';
for i := 1 to A_r do
begin
for j := 1 to B_c do
begin
rez:=0;
for k := 1 to B_r do
rez:=rez+a[i][k]*b[k][j];
s:=s+IntToStr(rez)+' ';
end;
Memo6.Lines.Add(s);
s:='';
end;
end;

end.
Ребят, пожалуйста помогите
POPOV вне форума Ответить с цитированием
Старый 11.11.2007, 19:56   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Сам не умею. Может поможет это.
Вложения
Тип файла: rar Delphi in С++.rar (7.7 Кб, 68 просмотров)
puporev вне форума Ответить с цитированием
Старый 12.11.2007, 22:51   #3
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Спасибо, за эту фишку есть кое-чё полезное.

Ребят, мне тут помогли основу написать, ток вот компилер ругается очень на многое, осталось подправить. Знающие люди сделают быстро я думаю, помогите !

Вот код:
Код:
void __fastcall TForm1::Timer1Timer(TObject* Sender)
{
StatusBar1->Panels[0]->Text="Матрица с использованием StringGrid";
StatusBar1->Panels[1]->Text=Timetostr(time);
StatusBar1->Panels[2]->Text="Белев В.Ю, Жабин П.А";
} 
void __fastcall TForm1::Button1Click(TObject* Sender){
AnsiString s = "";
s=edit5->text;
B_r=StrToInt(Copy(S,1,Pos(",",s)-1));
B_c=StrToInt(Copy(S,Pos(",",s)+1,s.Length());
StringGrid2->ColCount=B_c;
StringGrid2->RowCount=B_r;
StringGrid2->Height=B_r*StringGrid1->DefaultRowHeight+10;
StringGrid2->Width=B_c*StringGrid1->DefaultColWidth+10;
}
 
void __fastcall TForm1::Button2Click(TObject* Sender)
{ 
Close();
} 

void __fastcall TForm1::Button3Click(TObject* Sender)
{
Close();
} 

void __fastcall TForm1::Button4Click(TObject* Sender)
{
AboutBox->Show();
} 

void __fastcall TForm1::Button5Click(TObject* Sender)
{ 
AboutBox->Show();
} 

void __fastcall TForm1::Button6Click(TObject* Sender)
{ 
AboutBox->Show();
}
 
void __fastcall TForm1::Timer2Timer(TObject* Sender)
{ 
StatusBar2->Panels[0]->Text="Матрица с использованием Memo";
StatusBar2->Panels[1]->Text=Timetostr(time);
StatusBar2->Panels[2]->Text="Белев В.Ю, Жабин П.А";
} 

void __fastcall TForm1::Timer3Timer(TObject* Sender)
{ 
StatusBar3->Panels[0]->Text="Матрица с загрузкой из файла";
StatusBar3->Panels[1]->Text=Timetostr(time);
StatusBar3->Panels[2]->Text="Белев В.Ю, Жабин П.А";
}
 
void __fastcall TForm1::Button7Click(TObject: Sender)
{ 
AnsiString s = "";
{
s=edit1->Text;
A_r=StrToInt(Copy(S,1,Pos(",",s)-1));
A_c=StrToInt(Copy(S,Pos(",",s)+1,s.Length()));
B_r=A_c;
StringGrid1->ColCount=A_c;
StringGrid1->RowCount=A_r;
StringGrid1->height=A_r*StringGrid1->DefaultRowHeight+10;
StringGrid1->Width=A_c*StringGrid1->DefaultColWidth+10;
}
 
void __fastcall TForm1::Button8Click(TObject* Sender)
{ 
int ad,s;
for (int i:=0; i < A_r; i++)
for (int j:=0; j < A_c; j++){
  ad=0;
  for int k = 0; k <=B_r-1; k++){  
    ad=ad+strtoint(StringGrid1->Cells[k,i]) * strtoint(StringGrid2->Cells[j,k]);
    StringGrid3->ColCount=ad;
    StringGrid3->RowCount=ad;
    StringGrid3->height:=ad*StringGrid1->DefaultRowHeight+10;
    StringGrid3->Width:=ad*StringGrid1->DefaultColWidth+10;
    StringGrid3->Cells[j,i]=Inttostr(ad); 
  }
} 
}

void __fastcall TForm1::Button9Click(TObject* Sender)
{ 
int a[10][10];
int b[10][10];
int j,i1,j1,k1,rez,l,i2,j2,A_r,A_c,B_r,B_c;
AnsiString str,s,s1;
Memo3->Clear();
s=Edit2->Text;
A_r=StrToInt(Copy(S,1,Pos(",",s)-1));
A_c=StrToInt(Copy(S,Pos(",",s)+1,s.Length()));
B_r=A_c;
s=Edit6->Text;
B_c=StrToInt(Copy(S,Pos(",",s)+1,s.Length()));
for int i = 0 ; i < A_r; i++)
{
s=Memo1->Lines->Strings[i-1];
if (s[s.Length() - 1]<>" ") then s+=" ";
for int j = 0 ; j < A_c; j++)
{
s1=s.Copy(1,Pos(" ",s)-1);
a[i][j]=StrToInt(s1);
delete(s,1,s1.Length()+1);
}
}
for int i = 0; i < B_r; i++){
s=Memo4->Lines->Strings[i-1];
if (s[s.Length()-1]<>' ') then s+=" ";
for int (j = 0; j < B_c; j++)
{
s1=s.Copy(1,Pos(" ",s)-1);
b[i][j]=StrToInt(s1);
s.delete(1,s1.Length()+1);
}
}
S="";
for (int i := 0; i < A_r; i++ )
{
for int j = 0 ; j < B_c j++)
{
rez=0;
for int k = 0; k <  B_r; k++)
rez=rez+a[i][k]*b[k][j];
s=s+IntToStr(rez)+" ";
} 
Memo3->Lines->Add(s);
s="";
}}
} 

void __fastcall TForm1::Button10Click(TObject* Sender)
{ 
int rez,X,Y;
AnsiString s,s1;
File* f,f1;
int a[10][10];
int b[10][10];
{
Memo2->Clear();
Memo6->Clear();
Memo2->Lines->LoadFromFile(Edit3->Text);
Memo5->Clear();
Memo5->Lines->LoadFromFile(Edit7->Text);
s=Edit4->Text;
A_r=StrToInt(S.Copy(1,Pos(",",s)-1));
A_c=StrToInt(S.Copy(Pos(",",s)+1,s.Length()));
B_r=A_c;
s=Edit8->Text;
B_c=StrToInt(S.Copy(Pos(",",s)+1,s.Length()));
for int i = 0; i < A_r; i++){
s=Memo2->Lines->Strings[i-1];
if (s[s.Length() -1]<>" ") s=s+" ";
for int j = 0 ; j < A_c ; j++){
s1=s.Copy(1,Pos(" ",s)-1);
a[i][j]=StrToInt(s1);
s.delete(1,Length(s1)+1);
}
}
for int (i = 0; i< B_r;i++)
{
s=Memo5->Lines->Strings[i-1];
if (s[s.Length()-1]<>" " ) s+=" ";
for j := 1 to B_c do
begin
s1=s.Copy(1,Pos(" ",s)-1);
b[i][j]=StrToInt(s1);
s.delete(1,Length(s1)+1);
}}
S="";
for int (i := 0; i < A_r; i++ )
{
for int j = 0; j < B_c; j++)
{
rez=0;
for int (k= 0; k < B_r ;k++)
rez=rez+a[i][k]*b[k][j];
s=s+IntToStr(rez)+" ";
}
Memo6->Lines->Add(s);
s="";
}}}
Короче например ругается на слово "pos". В чём дело не ясно...
POPOV вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитационное моделирование систем массового обслуживания на Delphi или C++Builder Приватная Фриланс 4 04.12.2008 10:39
Как вставить панельку с кнопочками в редактор Delphi/Builder/Visual C++? Brother Win Api 1 02.10.2007 13:35
ПОМОГИТЕ ПЕРЕДЕЛАТЬ ПРОГРАММУ ИЗ PASCAL В DELPHI Solny6ko YasnoE Помощь студентам 11 11.08.2007 15:24