CafeHT - Zing.Forum.ST

You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

girl_beauty
girl_beauty Trà Đá

Posts : 25

Liked : 10

Point : 43

Join : 28/06/2011

Các anh, các chị trong diến đàn thân mến vừa qua thây cho em bài tập dù em đã cố gắng hêt sức nhưng vẫn hông làm được mong các anh giúp em nghen
Đề bài:
bài 1: Tính giá trị của đa thức bậc N theo phương pháp Horrner?



Được sửa bởi girl_beauty ngày Sat 02 Jul 2011, 09:32; sửa lần 1.

Thích0Báo xấu0

Gửi một tin nhắn lên tường.

Gửi báo cáo lỗi về bài viết này.

axc_victory
axc_victory Moderator

Posts : 943

Liked : 288

Point : 1423

Join : 03/04/2010

anh có tìm giúp em. bài này nó không phải là bài giải em cần tìm mà nó cho biết về phương pháp Honner. mong em chóng tìm ra đáp án



Đề bài:Cho số thực x và số nguyên dương n.Hãy tính biểu thức sau bằng phương pháp Horner
f=(n+1).x^n+n.x^(n-1)+...+2x+1

yêu cầu: sử dụng câu lệnh if, for.
Code:

Code:
//Horner f=(n+1).x^n+n.x^(n-1)+...+2x+1
#include <stdio.h>
void main()
{
  int n,b;
  double f,a;
  printf("Nhap vao so n va a: ");
  scanf("%d%lf",&n,&a);
  b=n+1;
  f=float(b);
  if (b>1)
      for (int i=1;i<=n;i++)
        f=a*f+(--b);
  printf("Gia tri bieu thuc la: %lf\n",f);
}

Hướng giải: Vẽ sơ đồ Horner ra đặt tương ứng a,b,f (f là giá trị biểu thức), ta thấy f chỉ được tính và lặp lại sau đó khi thực hiện lần nhân ngang cộng chéo đầu tiên nên sẽ bỏ qua b ở b=(n+1), từ đó ta có biểu thức chính trong vòng lặp là f=a*f+(--b); (b giảm 1 trước khi thực hiện phép tính)

Code update:

Code:
//Horner
 #include <stdio.h>
 #include <conio.h>
 void main ()
 {
    int n;
    double x,f;
    printf("Nhap so nguyen duong n: ");
    scanf("%d",&n);
    f=n+1;
    printf("Nhap so thuc x: ");
    scanf("%lf",&x);
    for(int i=1;i<=n;i++)
      f=n+1-i+x*f; 
    printf("Ket qua = %lf\n",f);
  getch(); 
}

Giải thích: biến b giảm 1 trước mỗi lần tính f, tương ứng b đầu tiên có giá trị (n+1) trừ cho i

nếu vẫn không được thì em vào diễn đàn Cộng đồng C việt nhé. ở đó có rất nhiều cao thủ sẵn lòng giúp em [You must be registered and logged in to see this link.]

Thích0Báo xấu0

Gửi một tin nhắn lên tường.

Gửi báo cáo lỗi về bài viết này.

girl_beauty
girl_beauty Trà Đá

Posts : 25

Liked : 10

Point : 43

Join : 28/06/2011

Vâng cảm ơn anh nghen, em sẽ nghiên cứu,

girl_beauty
girl_beauty Trà Đá

Posts : 25

Liked : 10

Point : 43

Join : 28/06/2011

hu hu Hổng ai làm giứp em hết trơn Zay? Em tìm hiểu rồi nhưng khó quá.

hieufpt
hieufpt Chủ Quán

Posts : 1762

Liked : 1171

Point : 4056

Join : 23/08/2010

Em girl_beauty thân mến Thực sự muốn lập trình được thì các môin nằm trong môn Nguyên lý lập trình cơ bản em phải nắm các kiến thức cơ bản, Hôm nay anh vào nhà anh Admin chơi và thấy bài của em post theo nguyên tắc thì mọi người sẽ tìm giúp em các thuật toán để em tự nghiên cứu vì nếu giải hoàn thiện giúp em sẽ có thông lệ xấu trong rum và điều đó cũng không tốt cho em, nhưng do thời gian em phải hoàn thành bài gấp nên hôm nay ngoại lệ anh sẽ làm đầy đủ cho em để em hiểu, nếu có thời gian anh sẽ hướng dẫn thuật toán liên quan đến các bài toán horrner nhưng do anh bận nên anh không trình bày kỹ ở đây, vì lập trình khó nhất là tìm thuật toán thích hợp thôi.

Code:
//các thủ tục thư viện cần dùng trong bài cái này chắc em phải hiểu
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define nmax 100
//====================================
//Bài toán thực chất là tìm giá trị đa thức bậc n tại x tính theo phương trình horrner
void nhap(float a[],int &n)
{int i,j,k;
printf("\nNhap bac cua da thuc: ");scanf("%d",&n); printf("\nNhap cac he so tu bac cao den thap:\n"); for(i=n;i>=0;i--)
{printf("Nhap  a[%d] = ",i); scanf("%f",&a[i]);
}
clrscr();
}
//====================================
//Tinh p(x) = a[n]*(x mu n) + ... + a[1]*x +a[0]
float horner(float a[],int n,float x) //Tra ve gia tri da thuc tai x
 {int i;float s;
s=a[n];
for(i=n-1;i>=0;i--) s=s*x+a[i];
return(s);
}
//==================================== void view(float a[],int n)
{int i;
printf("\nCac he so da thuc tu mu bac cao den thap:\n"); for(i=n;i>=0;i--) printf("%3.1f  ",a[i]);
}
//sử lý với hàm void main()  để hiện thị kết quả
{clrscr();
float a[nmax],x;int n,k;
nhap(a,n);
printf("\nCac he so cua da thuc tu bac cao den thap la:"); view(a,n);
printf("\nHay nhap gia tri can tinh gia tri da thuc, x = ");scanf("%f",&x);
printf("\nGia tri da thuc tai x = %.1f la %.1f",x,horner(a,n,x)); getch();
}
Giải ra rồi thấy dễ không em thực tế nó chỉ là bài toán tính đa thức bình thường thôi, dể hơn cả bài của anh AXC hướng dẫn mà, Chúc em đạt kết quả tốt

Thích0Báo xấu0

Gửi một tin nhắn lên tường.

Gửi báo cáo lỗi về bài viết này.

girl_beauty
girl_beauty Trà Đá

Posts : 25

Liked : 10

Point : 43

Join : 28/06/2011

Woa có người giải giúp em rồi Em cảm ơn anh Hieufpt nha, hôm qua em đi thăm người ốm cứ nghĩ rằng hết hy vọng em đang nhờ các anh chị nhưng chưa ai trả lời cả, Hôm nay vào xem có ai giải giúp em hông, Hôm nay đúng là ngày may mắn của em, tối nay em được ngủ ngon rồi, Cảm ơn anh hieufpt nhiều nghen!

hieufpt
hieufpt Chủ Quán

Posts : 1762

Liked : 1171

Point : 4056

Join : 23/08/2010

:d không có gì em ah, chỉ cần cố gắng là bài nào cũng giải quyết được hết :d

bfchnvn
bfchnvn Trà Hoa Sứ

Posts : 536

Liked : 276

Point : 1044

Join : 31/03/2010

mọi người chỉ giúp về ý kiến thôi...còn code phải tự làm có gì thắc mắc thì hỏi chứ làm cả code cho bạn sao được.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

CafeHT - Zing.Forum.ST »  MÁY TÍNH, MOBLILE » Phần mềm » 

Share this topic!

URL Direct
BBcode
HTML
mong các anh giúp đỡ bài tập cho em (Lập trình C++)

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 
  • Free forum | Văn hóa | Khác | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất