kiemkhach Ốc Vít
Tổng số bài gửi : 11 Join date : 14/03/2009
| Tiêu đề: Bài tập số 8 (Chương 3) Sat Mar 14, 2009 11:44 pm | |
| - Code:
-
#include <stdio.h> #include <conio.h>
int i, n; float x, ma[30], S, s, a, b, c, e, eps;
float f(float x) { S=ma[n]; for (i=n; i>0; i--) S=S*x + ma[i-1]; return S; } float F(float x) //dao ham cua f(x) { float b[30]; s=n*ma[n]; for (i=n-1; i>0; i--) { b[i]=i*ma[i]; s=s*x + b[i]; } return s; } void main() { clrscr(); printf("\nChuong trinh tim nghiem cua da thuc bac n nhap tu ban phim\n"); printf("\nNhap bac cua da thuc can tinh n = "); scanf("%d", &n); printf("\nNhap vao cac he so tu a[%d] den a[0] cua da thuc\n",n);
for (i=n; i>=0; i--) { printf("\n a[%d] = ",i); scanf("%f",&ma[i]);}
printf("\nNhap vao khoang phan li nghiem a<=x<=b"); printf("\n a = "); scanf("%f",&a); printf("\n b = "); scanf("%f",&b); printf("\nNhap vao sai so epsilon = "); scanf("%f",&eps); if ((F(a)*F(b)<0)||(f(a)*f(b)>0)) { printf("\nKhong dung \"khoang phan li\""); getch(); return; }
do { if (F(a)*F(b)<0) { printf("\nKhong dung \"khoang phan li\""); getch(); return; } c=(a+b)/2;
if (f(c)*f(a)==0) { printf("\nPhuong trinh co nghiem x = "); f(c)==0? printf("%f",c): printf("%f",a); getch(); return; } (f(c)*f(a)<0)?(b=c):(a=c); e=b-a; } while (e>=eps);
printf("\nPhuong trinh: %6.2f *x^%d + %6.2f *x^%d + ... + %6.2f = 0\n",ma[n],n,ma[n-1],n-1,ma[0]); printf("\nCo nghiem trong khoang phan li nghiem da cho la: x = %f",c); getch(); } | |
|