Bài tập turbo pascal



tải về 0.6 Mb.
trang42/42
Chuyển đổi dữ liệu27.02.2022
Kích0.6 Mb.
#51050
1   ...   34   35   36   37   38   39   40   41   42
100 bài tập pascal
13234
Nhận xét:
Bài tập 10.2:

Viết chương trình cho phép tính giá trị của đa thức A(x) tại giá trị x = x0.



Giải thuật:

- Dùng chương trình con để tính xn.



Cài đặt:

Program Gia_tri_cua_da_thuc;

Var n,i: integer;

x,a,s:real;

Function XMU(x:real; n:integer):real;

Var i: integer;

Mu: real;

Begin

Mu:=1;


For i:=1 to n do Mu:=Mu*x;

XMU:=Mu;


End;

Begin


Write('Nhap bac cua da thuc n = '); Readln(n);

Write('Tinh f(x) tai x = ');Readln(x);

S:=0;

For i:=n downto 0 do



Begin

Write('a',i,'= '); Readln(a);

S:=S+a*XMU(x,i);

End;


Writeln('F(',x:5:2,')= ',S:5:2);

Readln;


End.

Nhận xét:

Bài tập 10.3:

Viết chương trình tính giá trị của đa thức A(x) với điều kiện không dùng biến mảng.



Viết chương trình tính giá trị của đa thức f(x) = anxn + ... +a1x + a0 tại x = x0.

Thuật toán: f(x) = anxn + ... +a1x + a0

= a0 + x(a1 + x(a2 + ... x(an-1 + x(an))...))

Lặp lại việc: Đọc và cộng hệ số rồi nhân với x từ hệ số an đến hệ số a0.

Chương trình:

Program Gia_tri_da_thuc;

Var S,a,x: real;

n,i: byte;

Begin


Write('Nhap bac cua da thuc. n = '); Readln(n);

Write('Tinh f(x) tai x = ');Readln(x);

S:=0;

For i:= n downto 0 do



Begin

Write('a',i,'=');Readln(a);

S:=(S+a)*x;

End;


Write('f(',x:3:1,')=',S:5:1);

Readln


End.

Nhận xét:

Bài tập 10.4:

Viết chương trình cho phép nhân hai đa thức đã sắp xếp.



Thuật toán: Tích đa thức A bậc m với đa thức B bậc n là đa thức C bậc m + n. Trong đó : C[m] = Tổng của các tích A[i] * A[j] sao cho i+j = m.

Program Nhan_da_thuc;

Var m,n,i,j:byte;

A, B, C: array[0..10] of real;

Begin


Write(' Nhap bac cua da thuc A: '); Readln(m);

For i:= m downto 0 do

Begin

Write('A[',i,']= '); Readln(A[i]);



End;

Write(' Nhap bac cua da thuc B: '); Readln(n);

For i:= n downto 0 do

Begin


Write('B[',i,']= '); Readln(B[i]);

End;


For i:=0 to m+n do C[i]:=0;

For i:=0 to m do

For j:=0 to n do C[i+j]:=C[i+j]+A[i]*B[j];

For i:= m+n downto 0 do if C[i]<>0 then Write(C[i]:3:1,'x^',i,' + ');

Readln

End.


Nhận xét:

Bài tập 10.5:

Viết chương trình cho phép chia hai đa thức để tìm đa thức thương và đa thức dư.



Giải thuật:

Cài đặt:

Program Chia_da_thuc;

uses crt;

Type KM = array[0..10] of real;

Var A,B,C,AB,D: KM;

i,n,cs,bc: byte;

Procedure NhapDT(Var A: KM; n:byte);

Var i: byte;

Begin


For i:=n downto 0 do

Begin Write('M[',i,']='); Read(A[i]); End;

End;

Function BAC(A:KM;n:integer):Byte;



Var i:Byte;

Begin


i:=n;

While (A[i]=0) and (i> 0) do i:=i-1;

BAC:=i;

End;
Procedure TRU(Var A:KM;B:KM;n:byte);

Var i: byte;

Begin


For i:= 0 to n do A[i]:=A[i]-B[i];

End;


Procedure NHAN(Var C:KM;A,B:KM; Var n:byte);

Var i,j:byte;

TAM:KM;

Begin


n:=Bac(A,n)+Bac(B,n);

For i:= 0 to 2*n do TAM[i]:=0;

For i:= 0 to n do

For j:=0 to n do TAM[i+j]:=TAM[i+j]+A[i]*B[j];

For i:=0 to 2*n do C[i]:=TAM[i];

End;


Procedure INDT(A:KM;n:byte);

Var i: byte;

Begin

if A[n] <> 0 then Write(A[n]:3:1,'x^',n);



For i:=n-1 downto 0 do

if A[i] <> 0 then

if A[i] < 0 then write(A[i]:3:1,'x^',i) else Write('+',A[i]:3:1,'x^',i);

End;


Procedure DT_BAC(Var A:KM;Bac:byte;gt:real);

Var i:byte;

Begin

For i:=1 to n do A[i]:=0;



A[Bac]:=gt;

End;


Begin

clrscr;


Write('Nhap bac cua da thuc bi chia: ');Readln(n);

Writeln('Nhap da thuc A: '); NhapDT(A,n);

Writeln('Nhap da thuc B: '); NhapDT(B,n);

clrscr;


Write('Da thuc bi chia: ');Indt(A,n); Writeln;

Write('Da thuc chia: ');Indt(B,n); Writeln;

bc:=Bac(A,n)-Bac(B,n); {Luu bac cua da thuc C}

For i:=1 to bc do C[i]:=0;

While BAC(A,n) >= BAC(B,n) do

Begin


cs:=BAC(A,n)-BAC(B,n);

C[cs]:=A[Bac(A,n)]/B[Bac(B,n)];

Writeln('C[',cs,']=',C[cs]:3:1);

DT_BAC(D,cs,C[cs]);Writeln;

Write('Da thuc D:');

Indt(D,n);

NHAN(AB,B,D,n);Writeln;

Write('Da thuc AB:');

Indt(AB,n);Writeln;

TRU(A,AB,n);

Write('Da thuc A moi:');

Indt(A,n);

End;

Writeln('Da thuc thuong: ');



Indt(C,bc);

Readln;


Readln

End.


Nhận xét:

Bài tập 10.7:
Giải thuật:

Cài đặt:




Nhận xét:

Bài tập 10.8:
Giải thuật:

Cài đặt:




Nhận xét:

Bài tập 10.9:
Giải thuật:

Cài đặt:




Nhận xét:

Bài tập 10.10:
Giải thuật:

Cài đặt:




Nhận xét:



Nhóm tin học trẻ GKM, Duy Hải, Duy Xuyên, Quảng Nam Trang


tải về 0.6 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   34   35   36   37   38   39   40   41   42




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương