mấy hôm trước em về quê không gửi code cho các bác được hôm nay em xin gửi code bằng ngôn ngữ C,Rất mong sớm có sự đóng góp ý kiến của anh em ,đặc biệt là bac TQN.Cái này là hoàn toàn tự em viết.là newbie nên có gì mong các bác hướng dẫn em xin sửa.Cảm ơn các bác rất nhiều
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
"Ứng dụng multithread trong bài toán nhân ma trận. Đọc vào 2 ma trận A & B từ file, sau đó dùng nhiều thread để thực hiện việc nhân 2 ma trận này. Ghi ma trận kết quả ra một file khác. "
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
à quên: những gì bac TQN yêu cầu :
**************************
Tui có thể giúp cậu với đk là cậu phải cho tui thấy cậu đã làm được gì. Cậu hãy làm trước các công việc sau với code của cậu:
- Đọc 2 ma trận từ file
- Nhân 2 ma trận (bình thường, không dùng thread)
- Ghi ma trận kết quả.
Cậu code = gì, môi trường nào ?
*********************************************
em đã hoàn thành.Một lần nữa rất mong được các bác đóng góp ý kiến
Code:
//=========================================================
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
FILE *f;
FILE *f1;
FILE *f2;
FILE *f3;
int i=0,k,j,n[4],m,temp;
int x[50][50],y[50],z[50][50],temp1,kq[50][50];
// nhap cac cap cua ma tran (nhap vao mot file txt);
f=fopen("ma_tran","rt");
while(!feof(f))
{
i++;
fscanf(f,"%d",&temp);
n[i]=temp;
}
printf("\n %d%5d%5d", n[1],n[2],n[3]);
fclose(f);
// nhap ma tran A thong qua tep "nhapmt"
f1=fopen("nhapmt","rt");
for(i=1;i<=n[1]*n[2];i++)
{
fscanf(f1,"%d",&temp);
y[i]=temp;
printf("\n %d",y[i]);
}
fclose(f1);
k=1;
clrscr();
for(i=1;i<=n[1];i++)
for(j=1;j<=n[2];j++)
{
x[i][j]=y[k];
k++;
};
for(i=1;i<=n[1];i++)
{
printf("\n");
// In ra nhapmt
for(j=1;j<=n[2];j++)
printf("%3d",x[i][j]);
}
printf("\n");
//nhap ma tran B thong qua tep "nhapmtB"
f2=fopen("nhapmtB","rt");
for(i=1;i<=n[2]*n[3];i++)
{
fscanf(f1,"%d",&temp);
y[i]=temp;
}
fclose(f2);
k=1;
for(i=1;i<=n[2];i++)
for(j=1;j<=n[3];j++)
{
z[i][j]=y[k];
k++;
};
// In ra nhapmtB
for(i=1;i<=n[2];i++)
{
printf("\n");
for(j=1;j<=n[3];j++)
printf("%3d",z[i][j]);
}
// giai thuat nhan hai ma tran
for(i=1;i<=n[1];i++)
for(j=1;j<=n[3];j++)
{
kq[i][j]=0;
for(int t=1;t<=n[2];t++)
kq[i][j]+=x[i][t]*z[t][j];
printf("\n");
for(i=1;i<=n[1];i++)
{
printf("\n");
for(j=1;j<=n[3];j++)
printf("%3d",kq[i][j]);
}
}
// ghi hai ma tran ra tep "ket_qua"
f3=fopen("ket_qua","wt");
for(i=1;i<=n[1];i++)
{
for(j=1;j<=n[3];j++)
fprintf(f3,"%5d",kq[i][j]);
fprintf(f3,"\n");
}
fclose(f3);
getch();
}
//==========================
đã test okie.
--------------------
Cảnh cáo.Thường xuyên vi phạm nội quy diễn đàn.Chú ý đọc nội quy trước khi post nếu không lần sau tui sẽ del bài cậu đó.Cảm ơn.Alviss