Chuyển code từ lập trình C sang VBA ?

  • Thread starter Thread starter trungnt
  • Ngày gửi Ngày gửi
Liên hệ QC

trungnt

Thành viên hoạt động
Tham gia
2/2/07
Bài viết
135
Được thích
88
Hiện nay em cóp nhặt được 1 đoạn code giải hệ phương trình theo phương pháp Gauss bằng lập trình C. Nhưng em không biết về lập trình C nên em đọc không hiểu gì cả, em đưa lên muốn nhờ các anh chị chuyển thể qua VB hoặc VBA và nếu được thì chú thích thêm các đoạn trong code. Em xin cảm ơn nhiều nhiều..................!!!!!!!--=----=--)(&&@@
Đoạn code viết bằng C như sau:
[FONT=&quot]
#include <stdio.h>
#include <math.h>

#define MAX 10
double A[MAX][MAX], B[MAX][MAX], X[MAX][MAX];

void gauss_jordan(int n, int p)
{
int i=0, j, done=0, m, k;
double max, c;
printf("\nTinh nghiem cua he phuong trinh");
while (!done)
{
if (A == 0)
{
max = 0;
m = i;
for (k=i+1; k<n; k++)
if (max < fabs(A[k]))
{
m = k;
max = fabs(A[k]);
}
if (m != i)
{
for (j=i; j<n; j++)
{
c = A[j];
A[j] = A[m][j];
A[m][j] = c;
}
for (j=0; j<p; j++)
{
c = B[j];
B[j] = B[m][j];
B[m][j] = c;
}
}
if (m == i)
done = 1;
}
if (A != 0)
{
c = 1/A;
for (j=i; j<n; j++)
A[j] = A[j] * c;
for (j=0; j<p; j++)
B[j] = B[j] * c;
for (k=0; k<n; k++)
if (k != i)
{
c= A[k];
for (j=i; j<n; j++)
A[k][j] = A[k][j] - A[j]*c;
for (j=0; j<p; j++)
B[k][j] = B[k][j] - B[j] * c;
}
}
printf("\nLan khu hang %d", i);
for (k=0; k<n; k++)
{
printf("\n");
for (j=0; j<n; j++)
printf("%10.5lf", A[k][j]);
for (j=0; j<p; j++)
printf(" = %10.5lf", B[k][j]);
}
i++;
if (i>=n)
done = 1;
}
if (i >= n)
for (j=0; j<n; j++)
for (k=0; k<p; k++)
X[j][k] = B[j][k];
}

void in_A(int n)
{
int i, j;
printf("\nMa tran A :");
for (i=0; i<n; i++)
{
printf("\n");
for (j=0; j<n; j++)
printf("%10.5lf", A[j]);
}
}

void in_B(int n, int p)
{
int i, j;
printf("\nMa tran B :\n");
for (i=0; i<n; i++)
{
printf("\n");
for (j=0; j<p; j++)
printf("%10.5lf", B[j]);
}
}

void in_X(int n, int p)
{
int i, j;
printf("\nMa tran nghiem X :\n");
for (i=0; i<n; i++)
{
printf("\n");
for (j=0; j<p; j++)
printf("%10.5lf", X[j]);
}
}

void main()
{
int n, i, j, p;

printf("Giai he phuong trinh tuyen tinh AX = B.");
printf("\nbang phuong phap khu GAUSS.");
printf("\nCho biet cap ma tran : ");
scanf("%d%*c", &n);
printf("\nCho biet cap ma tran B : ");
scanf("%d%*c", &p);
printf("\nNhap ma tran A :\n");
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf("A[%d][%d] = ", i, j);
scanf("%lf", &A[j]);
}
printf("\nNhap ma tran B :\n");
for (i=0; i<n; i++)
for (j=0; j<p; j++)
{
printf("B[%d][%d] = ", i, j);
scanf("%lf", &B[j]);
}
in_A(n);
in_B(n, p);
gauss_jordan(n, p);

in_X(n, p);
getch();
}[/FONT]
 
Web KT

Bài viết mới nhất

Back
Top Bottom