Thuật toán :
-Nhập vào: n,c, các hệ số ai(i= )
-Xử lý: Gán p=a0
Lặp i=1 -> n: p=p*c+ai
-Xuất kết quả: p
Chương trình:
#include
#include
#define MAX 20
/*********************************************/
float hoocner(float A[],int x,int c);
/*********************************************/
void main()
{
float A[MAX],c;
int n;
do
{
printf("\Nhap vao bac hamso :");
scanf("%d",&n);
}
while(n<=0||n>=MAX);
for(int i=0;i<=n;i++)
{
printf("\nNhap vao heso A[%d]= ",i); scanf("%f",&A[i]);
}
printf("\nNhap vao giatri bien x=");
scanf("%f",&c);
printf("\nGiatri ham tai x=%7.3f la %7.3f",c,hoocner(A,n,c));
getch();
}
29 trang |
Chia sẻ: lylyngoc | Lượt xem: 2157 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Báo cáo Thực hành phương pháp tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Báo cáo thực hành phương pháp tínhMỤC LỤC
CHƯƠNG III: TÍNH GIÁ TRỊ HÀM
Bài 3: Khai báo ( định nghĩa) hàm trong C để tính giá trị đa thức bậc n tổng quát theo sơ đồ Hoocner.
Thuật toán : -Nhập vào: n,c, các hệ số ai(i=)
-Xử lý: Gán p=a0 Lặp i=1àn: p=p*c+ai
-Xuất kết quả: p
Chương trình:#include#include#define MAX 20/*********************************************/float hoocner(float A[],int x,int c);/*********************************************/void main(){float A[MAX],c;int n;do{printf("\Nhap vao bac hamso :");scanf("%d",&n);}while(n=MAX);for(int i=0;i<=n;i++){printf("\nNhap vao heso A[%d]= ",i); scanf("%f",&A[i]);}printf("\nNhap vao giatri bien x=");scanf("%f",&c);printf("\nGiatri ham tai x=%7.3f la %7.3f",c,hoocner(A,n,c));getch();}/*********************************************/float hoocner(float A[],int n, int c){int i;float s=0;for(i=0;i<=n;i++) s=s*c+A[i];return s;}/*********************************************/Bài 4: Viết chương trình ( có sử dụng hàm ở câu 3) nhập vào 2 giá trị a,b. Tính p(a) +p(b)
Thuật toán: Sử dụng hàm đã viết ở câu 3 để làm nhưng ở đây ta gọi hàm 2 lần.
Chương trình:#include
#include
#define MAX 20
/*********************************************/
float hoocner(float A[],int x,int c);
/*********************************************/
void main()
{
float A[MAX],a,b;
int n;
do
{
printf("\Nhap vao bac ham so :");
scanf("%d",&n);
}
while(n=MAX);
for(int i=0;i<=n;i++)
{
printf("\nNhap vao heso A[%d]= ",i); scanf("%f",&A[i]);
}
printf("\nNhap vao giatri bien a=");
scanf("%f",&a);
printf("\nNhap vao giatri bien b=");
scanf("%f",&b);
printf("\nGiatri ham p(%f)+p(%f) la :%7.3f",a,b,hoocner(A,n,a)+hoocner(A,n,b));
getch();
}
float hoocner(float A[],int n, int c)
{
int i;
float s=0;
for(i=0;i<=n;i++)
s=s*c+A[i];
return s;
}
/*********************************************/
Bài 5:Viết chương trình nhập vào 2 đa thức pn (x) bậc n , pm (x) bậc m và một giá trị c. Tính pn (x) + pm (x)
Thuật toán: - Nhập bậc của hai đa thức n,m - Nhập hệ số của hai đa thức bậc n, m - Nhập c - In ra hoocner( A, n, c) + hoocner( B,m,c ) // với hàm hoocner được sử dụng ở câu 3Chương trình :#include#include#include#define MAX 20/*************************************************/float hoocner(float A[],int n,int m,float c); void nhap(float A[],int n); /*************************************************/void main(){float A[MAX],B[MAX],x,a,b;int n,m,chon;printf("\n Nhap bac n cua pt1 :"); scanf("%d",&n);nhap(A,n);printf("\n Nhap bac m cua pt1 :"); scanf("%d",&m);nhap(B,m);printf("\n Nhap 1 giatri c=");scanf("%f",&x);printf("\n Giatri Pn©+Pm© =%5.2f", hoocner(A,n,n,x)+hoocner(B,m,m,x));getch();}/*************************************************/float hoocner(float A[],int n,int m, float c){ //Tra ve giatriint i;float s=0;for(i=n-m;i<=n;i++) s=s*c+A[i];return s;}/*************************************************/void nhap(float A[],int n){int i;for(i=0;i<=n;i++){printf("\n Heso A[%d]=",i); scanf("%f",&A[i]);}}/*************************************************/Bài 6: Cho đa thức p(x) bậc n . viết chương trình xác định các hệ số của đa thức p(y+ c) theo sơ đồ Hoocner tổng quát.Thuật toán : - Nhập n, c, hệ số của đa thức ai(i=) - hoocnertq (A, n, c)
Lặp i=n à 1
Lặp j=1 à i
Ai=Ai-1*c+Ai - In ra đa thức p(y+c)Chương trình :#include#include#include#define MAX 20/*************************************************/void hoocnertq(float A[],int n,float c);void inra(float A[],int n);void nhap(float A[],int n);/*************************************************/void main(){float A[MAX], x,a,b;int n,m,chon;printf("\n Nhap vao bac cua dathuc n="); scanf("%d",&n);nhap(A,n);printf("\n Nhap vao giatri c="); scanf("%f",&x);hoocnertq(A,n,x);printf("\n Phuongtrinh P(x+%5.2f)=",x);inra(A,n);getch();}/*************************************************/void hoocnertq(float A[],int n,float c){int i,j;for(i=n;i>=1;i--) for(j=1;j0?'+':' '),A[i],n-i);}/*************************************************/void nhap(float A[],int n){int i;for(i=0;i<=n;i++){printf("\n He so A[%d]=",i); scanf("%f",&A[i]);}}/*************************************************/
Bài 7:Khai báo hàm trong C để tính giá trị các hàm ex, sinx, cosx theo khai triển Macloranh .
Thuật toán: Khai báo hàm : ex - s = 0; a = 1; i = 1; - Lặp s+=a; a *= x/i; i++; trong khi ( > eps) - Xuất s; Khai báo hàm : sin(x) - n=3; s=0; a=x; - Lặp s+=a; a*=(-(x*x)/(n*(n-1))); n+=2; trong khi |a|>eps Khai báo hàm : cos(x) - n=2; s=a=1; - Lặp a*=(-(x*x)/(n*(n-1))); s+=a; n+=2; trong khi |a|>eps
Chương trình :#include#include#include#define MAX 20#define eps 1e-3/*************************************************/float sinx(float x); float cosx(float x);float expx(float x);/*************************************************/void main(){float x;int chon;printf("\n Muon' tinh :");printf("\n 1. Sin(x)");printf("\n 2. Cos(x)");printf("\n 3. e^x");do{ printf("\n Ban chon 1-3 :"); scanf("%d",&chon);}while(chon3);printf("\n Nhap giatri x="); scanf("%f",&x);switch(chon){case 1: printf("\n Sin(%5.2f)=%5.2f",x,sinx(x)); break;case 2: printf("\n Cos(%5.2f)=%5.2f",x,cosx(x));break;case 3: printf("\n e^%5.2f=%5.2f",x,expx(x)); break;}getch();}/*************************************************/float sinx(float x){float s,a;int n=3; s=0; a=x;do{s+=a;a*=(-(x*x)/(n*(n-1)));n+=2;}while(fabs(a)>eps);return(s);}/*************************************************/float cosx(float x){float s,a;int n=2; s=a=1;do{a*=(-(x*x)/(n*(n-1)));s+=a;n+=2;}while(fabs(a)>eps);return(s);}/*************************************************/float expx(float x){float s,a;int n=2;s=1;a=x;do{s+=a;a*=x/n;n++;}while(fabs(a)>eps);return(s);}/*************************************************/
CHƯƠNG VI: GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH
Bài 7: Viết chương trình tìm nghiệm cho các dạng tổng quát : f(x)= a0xn + a1x n-1+ ...+ an-1 x + an = 0a.Áp dụng phương pháp chia đôib.Áp dụng phương pháp dây cung
Thuật toán:* Phương pháp chia đôi: float chiadoi(float A[],int n,float a,float b) với a, b là khoảng nghiệm.- Lặp:c= (a+b)/2nếu f(b).f(a) > 0 thì a = ckhông thì b = ctrong khi |a-b| >eps* Phương pháp dây cung: float daycung(float A[],int n,float a,float b) với a, b là khoảng nghiệm.- Lặp:x=a-(b-a)*f(A,n,a)/(f(A,n,b)-f(A,n,a));nếu f(x) = = 0 trả về xngược lại nếu f(x).f(a) eps)ngược lạilặpa = xx = a-(b-a).f(a)/(f(b)-f(a))trong khi |x-a|>eps
Chương trình:#include#include#include#define MAX 20#define eps 1e-3/**************************************************/float chiadoi(float A[],int n,float a,float b);float daycung(float A[],int n,float a,float b);float f(float A[],int n,float x);/**************************************************/void main(){float a,b,A[MAX];int i,n;printf("Chuongtrinh tim nghiem cua pt a(0)*x^n+a(1)*x^(n-1)+...+a(n-1)*x+a(n)=0\n");printf("Nhap vao bac pt :"); scanf("%d",&n);for(i=0;i0);printf("\n Phuong phap chia doi : nghiem= %7.3f",chiadoi(A,n,a,b));printf("\n Phuongphap daycung : nghiem= %7.3f",daycung(A,n,a,b));getch();}/**************************************************/float f(float A[],int n,float x){ /*Ham` tinh' giatri dathuc*/float s=0;int i;for(i=0;i0) a=c;else b=c;}while(fabs(a-b)>eps);return c;}/**************************************************/float daycung(float A[],int n,float a,float b){float x,tmp;x=a-(b-a)*f(A,n,a)/(f(A,n,b)-f(A,n,a));if(f(A,n,x)==0) return x;else {if(f(A,n,x)*f(A,n,a)eps);}else{do{a=x;x=a-(b-a)*f(A,n,a)/(f(A,n,b)-f(A,n,a));}while(fabs(x-a)>eps);}}return x;}
Bài 8:Viết chương trình tìm nghiệm cho phương trình : ex -10x +7=0 bằng phương pháp tiếp tuyếnThuật toán:Lặpy = x;x = y - f(y)/f’(y)trong khi |y - x| > epsilonChương trình:#include#include#include#define eps 1e-3/*******************************************/float f(float x);float fdh(float x);/*******************************************/void main(){int n;float x,y;printf("\n Nhap vao giatri x="); scanf("%f",&x);do{y=x;x=y-f(y)/fdh(y);} while(fabs(y-x)>eps);printf("\n Giatri nghiem la : %10.3f",y);getch();}/*******************************************/float f(float x){return (exp(x)-10*x+7);}/*******************************************/float fdh(float x){return (exp(x)-10); }/*******************************************/Bài 9: Viết chương trình tìm nghiêm cho phương trình :x3 - x -1= 0 bằng phương pháp lặp.Thuật toán:- Khai báo hàm g(x)- Nhập nghiệm gần đúng x- Lặp y = xx = g(x)trong khi | y-x| > eps - Xuất xChương trình:
#include#include#include#define eps 1e-3float f(float x);float lap(float x0);/******************************************/void main(){float a;printf("\n Chuongtrinh tim nghiem pt theo pp lap");printf("\n Nhap 1 giatri : "); scanf("%f",&a);printf("\n Nghiem gan dung' la: %7.3f",lap(a));getch();}/******************************************/float f(float x){return(exp((1.0/3)*log(x+1)));}/******************************************/float lap(float x0){float tmp; do{tmp=x0;x0=f(x0);} while(fabs(x0-tmp)>eps);return(tmp);}/******************************************/
Bài 10: Viết chương trình xác định giá trị x1, x2 theo định lý 3
Thuật toán:- Nhập hệ số của đa thức- Tìm m1 sao cho m1 = max{|ai|} với i= - Tìm m2 sao cho m2 = max{|ai|} với i= - Tìm x1= - Tìm x2= - Xuất x1, x2Chương trình:
#include#include#include#define MAX 20void main(){int i,n;float A[MAX],max;printf("\n Nhap bac cua pt :"); scanf("%d",&n);for(i=0;i<=n;i++){printf("\n A[%d]=",i);scanf("%f",&A[i]);}max=A[0];for(i=1;i<n;i++) //Tinh x1if(max<A[i]) max=A[i];printf("\n x1= %7.3f",fabs(A[n])/(max+fabs(A[n])));max=A[1];for(i=2;i<=n;i++) //Tinh x2if(max<A[i]) max=A[i];printf("\n x2= %7.3f",1+max/fabs(A[0]));getch();}
Bài 11: Viết chương trình tìm cận trên của nghiệm dương phương trình đại số theo định lý 4.
Thuật toán:- Nhập hàm f(x)- Nếu a[0]>0 + Tìm giá trị lớn nhất a = max{|ai|} với i= sao cho ai<0+ Tìm vị trí số hạng đầu tiên đưa vào i+ N=1+ - Xuất NChương trình:
#include#include#include#include#define MAX 20void main(){int i,n;float A[MAX],max;printf("\n Nhap vao bac cua pt :"); scanf("%d",&n);for(i=0;i0){max=0;for(i=1;i=0) i++;printf("\n Can tren nghiem duong cua pt : %7.3f",1+exp((1.0/i)*log(max/A[0])));} else printf("\n A[0] khong >0 !");getch();}
CHƯƠNG V: GIẢI HỆ PHƯƠNG TRÌNH
ĐẠI SỐ TUYẾN TÍNH
Bài 3: Viết chương trình giải hệ phương trình đại số tuyến tinh bằng phương pháp Gauss
Nhập dữ liệu trực tiếp
Nhập dữ liệu từ file
Thuật toán:
Nhập n, aij(i=, j=)
Biến đổi A à A’ (ma trận tma giác trên)
Lặp i=1 à n-1
+ Nếu aij=0
Tìm j sao cho aij#0 (j=i+1 à n)
Nếu j<=n thì hoán vị đổi dòng i và dòng j cho nhau. Ngược lại kết thúc vì dữ liệu không hợp lệ
+ Lặp j=i+1 à n
m=-aji/aii
Lặp k=I à n+1 ajk = ajk*m
Tìm nghiệm
Lặp i=nà1
S=0
Lặp j= i+1àn S=S+aij*xj
Xuất nghiệm: xi (i=1àn)
Chương trình:
#include
#include
#include
const int NMAX=10;
const double Err=0.001;
// Khai bao cac bien toan cac
float A[NMAX][NMAX],X[NMAX];
int n;
void nhap();
void input_from_file();
void cheohoa(float A[NMAX][NMAX],int n);
void xuat();
void Gauss();
/*----------------------------Chuong trinh chinh--------------------------------*/
void main()
{int tt;char key;
while(1)
{
printf("\n------------------------He Phuong trinh--------------------------");
printf("\n Moi ban nhap n.Theo ma tran de bai ban nhap n=:");
scanf("%d",&n);
printf("\n 1.Nhap du lieu truc tiep ");
printf("\n 2.Nhap du lieu tu file ");
do
{printf("\n Ban chon:");
scanf("%d",&tt);}
while(tt!=1&&tt!=2);
switch(tt)
{
case 1: nhap();
Gauss();
break;
case 2: input_from_file();
Gauss();
break;
}
printf("\n ----------------------------------------------------------------");
printf("\n Xuat nghiem ra man hinh de xem :");
xuat();
fflush(stdin);
printf("\n Ban co muon tiep tuc khong (c/k)?\n");
scanf("%c",&key);
if(key!='c') break;
}
}
/*-------------------------------Cac ham con-----------------------------------*/
// Dinh nghia ham nhap du lieu tu file
void input_from_file()
{
int i=1,j=1;
FILE *fp;
fp=fopen("INPUT.txt","rt");
if(fp==NULL)
{
printf("\n Can't open this file.Please try again.");
exit(1);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%f",&A[i][j]);
if(j==n+1)
{
i++;
j=1;
}
else
j++;
}
}
fclose(fp);
}
//ham nhap du lieu truc tiep
void nhap()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n+1;j++)
{printf("\nNhap vao a[%d][%d]=",i,j);
scanf("%f",&A[i][j]);
}
}
//ham xuat ket qua ra man hinh
void xuat()
{
for(int i=1;i<=n;i++)
printf("\nX[%d]=%f",i,X[i]);
}
//ham gauss
void Gauss()
{
int i,k;
float S;
// Step 1: Cheo hoa ma tran nay
cheohoa(A,n);
// Step 2: Tim nghiem theo quy trinh nguoc
//-------------------Start----------------------
// Step 2.1 : Tim Nghiem
for(i=n;i>=1;i--)
{
S=A[i][n+1];
for(k=i+1;k<=n;k++)
S -=X[k]*A[i][k];
X[i]=S/A[i][i];
}
//-------------------Stop-----------------------
}
// Chuyen mot tra tran ve dang duong cheo
void cheohoa(float A[NMAX][NMAX],int n)
{
int i,j,k;
float temp,heso;
for(i=1;i<n;i++)
{
// Step 1: Kiem tra A[i][i] co bang 0 khong?
//-------------------Start-----------------------
if(A[i][i]==0) // Neu bang 0 that
{
// Tim nguoi thay the
for(j=i+1;j<=n;j++)
{
if(A[j][i]!=0) // Neu tim thay nguoi thay the
// Thuc hien hoan chuyen hai hang cho nhau
for(k=1;k<=n+1;k++)
{
temp=A[i][k];
A[i][k]=A[j][k];
A[j][k]=temp;
}
break; // Dung tim
}
}
//-------------------Stop-----------------------
// Step 2: Chuyen A va ma tran tam giac
//-------------------Start-----------------------
for(j=i+1;j<=n;j++)
{
heso= -A[j][i]/A[i][i];
for(k=1;k<=n+1;k++)
A[j][k] += A[i][k]*heso;
}
//-------------------Stop-----------------------
}
}
Bài 4: viết chương trình giải hệ đại số tuyến tính bằng phương pháp lặp Gauss Siedel
Nhập dữ liệu trực tiếp
Nhập dữ liệu thông qua file
Thuật toán:
Nhập n, aij (i=1àn, j=1àn+1)
Nhập xấp xỉ nghiệm ban đầu: xi (i=1àn)
Lặp
t=0 /*cho thoat*/
Lặp i=1àn
{ S=0
Lặp j=1àn do
if(j#i) S=S+aij*xj
yi=(ain+1 – S)/aii
if (|yi-xi| >=e) t=1 /*cho lặp*/
xi=yi
}trong khi (t)
Xuất nghiệm: xi hoặc yi (i=1àn)
Chương trình:
#include
#include
#include
#include
const int NMAX=10;
const double Err=0.001;
// Khai bao cac bien toan cuc
float A[NMAX][NMAX],X[NMAX];
int n;
void nhap();
void input_from_file();
void xuat();
int Gauss_S();
/*----------------------------Chuong trinh chinh--------------------------------*/
void main()
{int tt;char key;int dem;
while(1)
{
printf("\n------------------------He Phuong trinh--------------------------");
printf("\n Moi ban nhap n.Theo ma tran de bai ban nhap n=:");
scanf("%d",&n);
printf("\n 1.Nhap du lieu truc tiep ");
printf("\n 2.Nhap du lieu tu file ");
do
{printf("\n Ban chon:");
scanf("%d",&tt);}
while(tt!=1&&tt!=2);
switch(tt)
{
case 1: nhap();
dem=Gauss_S();
break;
case 2: input_from_file();
dem=Gauss_S();
break;
}
printf("\n ----------------------------------------------------------------");
if(dem<30)
{printf("\n Xuat nghiem ra man hinh de xem :");
xuat();}
else printf("\nHe phuong trinh ko the giai bang phuong phap nay");
fflush(stdin);
printf("\n Ban co muon tiep tuc khong (c/k)?\n");
scanf("%c",&key);
if(key!='c') break;
}
}
/*-------------------------------Cac ham con-----------------------------------*/
// Dinh nghia ham nhap du lieu tu file
void input_from_file()
{
int i=1,j=1;
FILE *fp;
fp=fopen("INPUT.txt","rt");
if(fp==NULL)
{
printf("\n Can't open this file.Please try again.");
exit(1);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%f",&A[i][j]);
if(j==n+1)
{
i++;
j=1;
}
else
j++;
}
}
fclose(fp);
}
//ham nhap du lieu truc tiep
void nhap()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n+1;j++)
{printf("\nNhap vao a[%d][%d]=",i,j);
scanf("%f",&A[i][j]);
}
}
//ham xuat ket qua ra man hinh
void xuat()
{
for(int i=1;i<=n;i++)
printf("\nX[%d]=%f",i,X[i]);
getch();
}
//ham gauss_s
int Gauss_S()
{ float Y[NMAX],temp,S;
int i,j,k,t=1,dem=0;
do
{ dem++;
for(i=1;i<=n;i++)
{
// Step 1: Kiem tra A[i][i] co bang 0 khong?
//-------------------Start-----------------------
if(A[i][i]==0) // Neu bang 0 that
{
// Tim nguoi thay the
for(j=i+1;j<=n;j++)
{
if(A[j][i]!=0) // Neu tim thay nguoi thay the
// Thuc hien hoan chuyen hai hang cho nhau
for(k=1;k<=n+1;k++)
{
temp=A[i][k];
A[i][k]=A[j][k];
A[j][k]=temp;
}
break; // Dung tim
}
}
//-------------------Stop-----------------------
// Step 2: Tinh toan
//-------------------Start-----------------------
S=0;
for(j=1;j<=n;j++)
if(j!=i)
S +=A[i][j]*X[j];
Y[i]=(A[i][n+1]-S)/A[i][i];
if((fabs(X[i]-Y[i])>=0.001)&&dem<30)
t=1;
else t=0;
X[i]=Y[i];
//-------------------Stop-----------------------
}
}while(t);
return dem;
}
Bài 5: Giải phương trình đại số tuyến tính bằng phương pháp giảm dư
Nhập dữ liệu trực tiếp
Nhập dữ liệu thông qua file
Thuật toán:
- Nhập n, a ij, xi
- Biến đổi hệ phương trình (1) về dạng (2)
for (i=1, i<= n, i++)
{ t = a[i,i]
for (j=1, j<=n+1; j ++) a[i,j] = a [i,j]/t
}
- Tính r[i] ban đầu (i = 1.n)
for i = 1àn do
{ r[i] =a [i, n+1]
for j = 1 . n do r[i] = r [i] - a[i,j] * x [j]
}
- Lap
t = 0 /* cho thoat*/
/* Tìm rs = max {|r[i]|} (i = 1.n) & tính l.i xs*/
max = |r[1]|; k =1
for i = 2 . n do
if (max < |r[i]| ) { max = |r[i]; k= i }
x [k] = x [k] + r[k]
/* Tính lại R[i] kiểm tra khả năng lặp tiếp theo */
d = r[k]
for i =1àn
{ r[i] = r[i] - a[i, k] * d
if (|r[i]| > . ) thi t =1 /* cho lap*/
}
Trong khi (t)
Xuất nghiệm: x[i] (i=1àn)
Chương trình:
#include
#include
#include
#include
const int NMAX=10;
const double Err=0.001;
// Khai bao cac bien toan cac
float A[NMAX][NMAX],X[NMAX];
int n;
void nhap();
void input_from_file();
void cheohoa(float A[NMAX][NMAX],int n);
void xuat();
int giamdu();
/*----------------------------Chuong trinh chinh--------------------------------*/
void main()
{int tt;char key;int dem;
while(1)
{
printf("\n------------------------He Phuong trinh--------------------------");
printf("\n Moi ban nhap n.Theo ma tran de bai ban nhap n=:");
scanf("%d",&n);
printf("\n 1.Nhap du lieu truc tiep ");
printf("\n 2.Nhap du lieu tu file ");
do
{printf("\n Ban chon:");
scanf("%d",&tt);}
while(tt!=1&&tt!=2);
switch(tt)
{
case 1: nhap();
dem=giamdu();
break;
case 2: input_from_file();
dem=giamdu();
break;
}
printf("\n ----------------------------------------------------------------");
if(dem<30)
{printf("\n Xuat nghiem ra man hinh de xem :");
xuat();}
else printf("\nHe phuong trinh ko giai duoc bang phuong phap nay");
fflush(stdin);
printf("\n Ban co muon tiep tuc khong (c/k)?\n");
scanf("%c",&key);
if(key!='c') break;
}
}
/*-------------------------------Cac ham con-----------------------------------*/
// Dinh nghia ham nhap du lieu tu file
void input_from_file()
{
int i=1,j=1;
FILE *fp;
fp=fopen("INPUT.txt","rt");
if(fp==NULL)
{
printf("\n Can't open this file.Please try again.");
exit(1);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%f",&A