задание:
Разработать программу для работы с двумя матрицами. Реализовать функции сложения, вычитания и умножения матриц. Элементы матриц задаются двумя файлами, указанными пользователями. Результат выводится на экран.
мои доработки:
Код:
void CKursa4Dlg::OnButton1()
{
char Filter[]="TextFile All(*.*)|*.*||";
CFileDialog fd(TRUE,".txt","ReadMe",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,Filter);
fd.DoModal();
FILE*file;
file=fopen(fd.GetPathName(),"r");
int i=0;
int j=0;
if(file!=NULL)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
fscanf(file,"%i ",&a[i][j]);
CString S;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{
S.Format("%.i ",a[i][j]);
m_A=m_A+S;
}
CString R;
R.Format(file,"%i ",R);
}
UpdateData(0);
}
void CKursa4Dlg::OnButton2()
{
char Filter[]="TextFile All(*.*)|*.*||";
CFileDialog fd(TRUE,".txt","ReadMe",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,Filter);
fd.DoModal();
FILE*file;
file=fopen(fd.GetPathName(),"r");
int i=0;
int j=0;
if(file!=NULL)
for (i=0;i<n;i++)
for (j=0;j<n;j++)
fscanf(file,"%i ",&b[i][j]);
CString S;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
S.Format("%.i ",b[i][j]);
m_B=m_B+S;
}
UpdateData(0);
}
void CKursa4Dlg::OnButton4()
{
FILE*file=NULL;
file=fopen("2.txt\0","w");
if(file==NULL)
{MessageBox("oshibka");
return;
};
fprintf(file, "%i ", m_C);
int i=0;
int j=0;
int c[n][n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];
UpdateData(1);
fprintf(file,"%i ",c[i][j]);
fclose(file);
CString A;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
A.Format("%.i ",c[i][j]);
m_C=m_C+A;
UpdateData(0);
}
}
void CKursa4Dlg::OnButton5()
{
FILE*file=NULL;
file=fopen("3.txt\0","w");
if(file==NULL)
{MessageBox("oshibka");
return;
}
int i=0;
int j=0;
int r[n][n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
r[i][j]=a[i][j]-b[i][j];
UpdateData(1);
fprintf(file,"%i ",r[i][j]);
fclose(file);
CString B;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
B.Format("%.i ",r[i][j]);
m_C=m_C+B;
UpdateData(0);
}
}
void CKursa4Dlg::OnButton6()
{
FILE*file=NULL;
file=fopen("4.txt\0","w");
if(file==NULL)
{MessageBox("oshibka");
return;
}
int i=0;
int j=0;
int u[n][n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
u[i][j]=a[i][j]*b[i][j];
UpdateData(1);
fprintf(file,"%i ",u[i][j]);
fclose(file);
CString E;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
E.Format("%.i ",u[i][j]);
m_C=m_C+E;
UpdateData(0);
}
}
Buttоn 1 и 2 записываю в эдит букс матрицы а и в из файла. Button 4,5,6 выполняют операции сложения вычитания и умножения соответственно.... Необходимо в эдит букс записать число n(кол-во строк и столбцов матриц) чтобы в дальнейшем использовать его проге... как это можно сделать?