1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập Tin học Đại cương part 4 ppsx

17 593 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập Tin học Đại cương
Tác giả Nguyễn Văn Nguyên
Người hướng dẫn Khoa CNTT-ĐTVT
Trường học Đại học Bách Khoa Đà Nẵng
Chuyên ngành Tin học Đại cương
Thể loại Bài tập
Thành phố Đà Nẵng
Định dạng
Số trang 17
Dung lượng 214,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương trình #include... Thuật toán: Thuật toán như bài ở phần III nhưng viết lại chương trình con g trình dưới dạng hàm.

Trang 1

while (fabs(a1)>=epsilon)

{

s1+=a1;

a1=a1*(-(x*x/(i*(i-1))));

+2;

*/

o do while*/

do

}while (fabs(a2)>=epsilon);

printf("Ket qua theo while =%f\n", s1);

theo ham chuan=%f",cos(x));

i=i

}

/* Tinh the

s2=0; a2=1;k=2;

{

s2+=a2;

a2=a2*(-(x*x/(k*(k-1))));

k=k+2;

printf("Ket qu the do whi e =

printf("ket qua

getch();

}

tính

27 Viết chương trình

S = Sh(x) = x +

3 3!

x + x5 + 2 1

2 1

n

x

n

+ +

* Thuật toán:

+ có hằng epsilon

/exp(x))/2 Chừng nào a >=eps lam

a=a*(x*x/(i*(i-1)));

hàm chuẩn để so sánh

ình

thể khai

i báo các biến s,x,a,i

ûp x từ b

+ Gán sh=(exp(x) -1

+ Gán s=0; a=x; i=3;

+

s=s+a;

i=i+2;

+ Viết kết quả s

+ Viết kết quả theo

* Chương tr

io.h>

0.00000000000001

+

#include <std

#include <conio.h>

#include <math.h>

#define epsilon

void main()

{

Trang 2

clrscr();

float s1,s2,x,a1,a2,i,k,shx;

f(" Nhap x=");

&x);

-1/(exp(x)))/2;

o while*/

-*/

=a1*(x*x/(i*(i-1)));

+2;

-*/

o do while*/

x/(k*(k-1)));

k=k+2;

n);

pri a theo while %f\n", s1);

pri a theo do hile =%f\n", s2);

theo ham chuan=%f",shx);

print

scanf("%f",

s1=0; a1=x;i=3;shx=(exp(x)

/* Tinh the

while (fabs(a1)>=epsilon)

{

s1+=a1;

a1

i=i

}

/* Tinh the

s2=0; a2=x;k=3;

do

{

s2+=a2;

a2=a2*(x*

}while (fabs(a2)>=epsilo

printf("ket qua

getch();

}

tính

28 Viết chương trình

S = ch(x) = 1 + x x x

n

+ + +

2 4

n

( )!

2! 4!

* Thuật toán:

+ có hằng epsilon

/exp(x))/2

lam s=s+a;

1)));

sánh

ình

thể khai

i báo các biến s,x,a,i

ûp x từ b

+ Gán ch=(exp(x) +1

+ Gán s=0; a=1; i=2;

+ Chừng nào a>=eps

a=a*(x*x/(i*(i-i=i+2;

+ Viết kết quả s

+ Viết kết quả theo hàm chuẩn để so

* Chương tr

io.h>

+

#include <std

Trang 3

#include <conio.h>

0000000001

; f(" Nhap x=");

&x);

x)+1/exp(x))/2;;

o while*/

-*/

=a1*(x*x/(i*(i-1)));

+2;

-*/

o do while*/

do

}while (fabs(a2)>=epsilon);

=%f\n", s1);

Sơ đồ Horner để tính đa thức P(x) = anxn + an-1xn-1 + + a1x

+ (a1+(a2+ ( n )x)x Viết chương trình nhập

ú đa thức a0,a1, ,an và x rồi dùng sơ đồ Horner để

toán:

#include <math.h>

#define epsilon 0.00

void main()

{

clrscr();

/* Tinh chx */

float s1,s2,x,a1,a2,i,k,chx

print

scanf("%f",

s1=0; a1=1;i=2; chx=(exp(

/* Tinh the

while (fabs(a1)>=epsilon)

{

s1+=a1;

a1

i=i

}

/* Tinh the

s2=0; a2=1;k=2;

{

s2+=a2;

a2=a2*(x*x/(k*(k-1)));

k=k+2;

printf("Ket qua theo while

printf("Ket qua theo do while =%f\n", s2);

printf("ket qua theo ham chuan=%f",chx);

getch();

}

29

+ a0 được biểu diễn như sau:

.+ (a )x)

P(x) =a0

mảng hệ sô

tính giá trị P(x)

* Thuật

hập n

+ Khai báo các biến : n,i,f,x,a

+ làm

N

Chừng nào n<0

Trang 4

+ Nhập x

+ Gán f=0

+ Cho i=n xuống 0 làm f=f*x +a

àn hình

ình

+ Viết f ra m

* Chương tr

tdio.h>

<math.h>

("%f",&n);

);

f",&x);

i=n; i>=0; i )

Nhap a%d=",tt);

scanf("%f",&a);

}

",f);

fibonaxi 1 1 2 3 5 8 13 21 34 55

Chương trình

#include <s

#include <conio.h>

#include

void main()

{

clrscr();

int tt;

float f,a,x,i,n;

do {

printf(" Nhap n=");

scanf

} while (n<0);

printf(" Nhap x="

scanf("%

f=0; tt=0;

for(

{

printf("

tt++;

f=(f*x)+a;

printf(" f(x)=%f

getch();

}

30 Tao dãy

*

cr();

b2 = 1, fib = 2;

N : ");

, fib1, fib2);

le (fib1+fib2 < n)

#include <stdio.h>

#include <conio.h>

void main()

{

clrs

int n, i, fib1 = 1, fi

printf("\nNhap gia tri

scanf("%d", &n);

printf("%d %d "

whi

Trang 5

{

fib = fib1 + fib2;

printf("%d ", fib);

fib2 = fib1;

fib1 = fib;

}

getch();

}

Trang 6

Phần IV : CHƯƠNG TRÌNH CON

1 Viết chương trình(dùng chương trình con là hàm)để tính

! 5

5

x - + (-1)n

2 1

2 1

n

x

n

− ( )

S= Sin(x) = x -

! 3

x3 +

!

* Thuật toán:

Thuật toán như bài ở phần III nhưng viết lại chương trình con

g trình

dưới dạng hàm

* Chươn

nio.h>

tdio.h>

0.000000000001

at x);

at x;

("%f",&x);

m=%f\n",tinh(x));

sin(x));

inh(float x)

eo while*/

-*/

s=0;

ile (fabs(a)>=epsilon)

{

s+=a;

i=i+2;

return s;

+

#include <co

#include <s

#include <math.h>

#define epsilon

float tinh(flo

main()

{

clrscr();

flo

printf("nhap x=");

scanf

x=x*M_PI/180;

printf(" ket qua theo ha

printf(" ket qua theo ham chuan=%f\n",

getch();

}

float t

{

float a,s,i;

/* Tinh th

a=x; i=3;

wh

a=a*(-(x*x/(i*(i-1))));

}

}

Trang 7

2 Viết chương trình(dùng chương trình con là hàm)để tính

! 2

2

x +

! 4

4

x - … + (-1)n

)!

2 (

2n

n

x

S = Cos(x) = 1 -

* Thuật toán:

Thuật toán như bài ở phần III nhưng viết lại chương trình con dưới dạng hàm

* Chương trình

#include <conio.h>

dio.h>

ath.h>

.000000000001 x);

ntf("nhap x=");

_PI/180;

theo ham=%f\n",tinh(x));

m chuan=%f\n",cos(x));

s,i;

-*/

=2; s=0;

a)>=epsilon) s+=a;

i=i+2;

Viết chương trình là hàmđể tính

#include <st

#include <m

#define epsilon 0

float tinh(float

main()

{

clrscr();

float x;

pri

scanf("%f",&x);

x=x*M

printf(" ket qua

printf(" ket qua theo ha

getch();

}

float tinh(float x)

{

float a,

/* Tinh theo while*/

/* -1; i

a=

while (fabs(

{

a=a*(-(x*x/(i*(i-1))));

}

return s;

}

3

S = Sh(x) = x +

3 3

x

! +

5

x

5! + +

2n 1

x + +

2n+1 ( )!

+

Trang 8

Thuật toán:

Thuật toán như bài ở phần III nhưng viết lại chương trình con

g trình

dưới dạng hàm

* Chươn

nio.h>

o.h>

shx=(exp(x)-1/exp(x))/2;

am=%f\n",tinh(x));

m chuan=%f\n",shx);

-*/

x; i=3; s=0;

a)>=epsilon)

i=i+2;

return s;

nh (có dùng chương trình con) tính

S = ch(x) = 1 +

# clude <co

#include <st

in

di

#include <math.h>

#define epsilon 0.000000000001

float tinh(float x);

main()

{

clrscr();

float x,shx;

printf("nhap x=");

scanf("%f",&x);

printf(" ket qua theo h

printf(" ket qua theo ha

getch();

}

float tinh(float x)

{

float a,s,i;

/* Tinh theo while*/

a=

while (fabs(

{

s+=a;

=a*(x*x/(i*

}

}

4 Viết chương trì

n

n

2!+4!+ + (2 )!

Thuật toán:

uật toán như bài ở phần III nhưng viết lại chương trình con

+

Th

dưới dạng hàm

Trang 9

* Chương trình

#include <conio.h>

dio.h>

h>

.000000000001

at x,chx;

("%f",&x); chx=(exp(x)+1/exp(x))/2;

theo ham=%f\n",tinh(x));

m chuan=%f\n",chx);

s,i;

-*/

1; i=2; s=0;

a)>=epsilon) {

s+=a;

}

øm tra số nguyên n có phải là số chính phương

#include <st

#include <math

#define epsilon 0

float tinh(float x);

main()

{

clrscr();

flo

printf("nhap x=");

scanf

printf(" ket qua

printf(" ket qua theo ha

getch();

}

float tinh(float x)

{

float a,

/* Tinh theo while*/

a=

while (fabs(

a=a*(x*x/(i*(i-1)));

i=i+2;

return s;

}

5 Viết một hàm kiê

không ?

* Thuật toán:

= 0;

begin

break;

là số chính phương không phải số chính phương

+ gán OK

+ cho i=1; i<=(int)sqrt(n);

if (i*i == n)

OK = 1;

end;

+ Nếu (OK) viết n

Ngược lại viết n

Trang 10

* Chương trình

clude <stdio.h>

ath.h>

emtra(int n);

rscr();

a so chinh phuong*/

n;

)

i, OK = 0;

ight by Nguyen Van Nguyen -Khoa CNTT-DHKT");

ap gia tri N : ");

("%d", &n);

i<=(int)sqrt(n); i++)

break;

}

hinh phuong", n);

printf("\nSo %d khong phai chinh phuong", n);

Pi

*

#in

#include <m

#include <conio.h>

void ki

main()

{

cl

/* chuong trinh kiem tr

int

kiemtra(n);

getch();

}

void kiemtra (int n

{

clrscr();

int

printf("Copyr

printf("\nNh

scanf

for (i=1;

if (i*i == n)

{

OK = 1;

if (OK)

printf("\nSo %d la so c

else

}

Viết một hàm kiểm tra 3 số ngu

thago không (x2

+y2=z2)

Thuật toán:

x,y,z:Real):Boolean;

Nếu (sqr(x) +sqr(y)=sqr(z))

(z)=sqr(y)) (z)=sqr(x)) thì kiemtra:=True a:=False;

Tạo hàm Kiemtra(

hoặc (sqr(x) +sqr

hoặc(sqr(y) +sqr

ngưọc lại Kiemtr

Trang 11

* Chương trình

#include <stdio.h>

#include <math.h>

o.h>

x*x KT(int x,int y,int z)

kiemtra;

r(x)+sqr(y)==sqr(z))||(sqr(x)+sqr(z)==sqr(y))||

)==sqr(x))) kiemtra=TRUE;else kiemtra=FALSE;

t;

ntf("Nhap 3 so a, b, c");

anf("%d%d%d",&a,&b,&c);

printf(" Day la bo ba cua Pithago");

se printf(" Day khong phai bo ba cua Pithago");

a các số nguyên x,y,z là bộ ba số Pithago

Chương trình

#include <coni

#define TRUE 1

#define FALSE 0

#define sqr(x)

int

{

int

if ((sq

(sqr(y)+sqr(z

return kiemtra;

}

main()

{

clrscr;

int a,b,c,

pri

sc

t=KT(a,b,c);

if (t==TRUE)

el

getch();

}

7 Viết một hàm in r

(x +y =z )

*

onio.h>

();

;

#include <math.h>

#include <stdio.h>

#include <c

void main()

{

clrscr();

textbackground(GREEN);

textcolor(BLUE);

clrscr

long x, y, z, dem;

dem=0

Trang 12

for (x=1; x<=25; x++)

= sqrt(x*x+y*y);

dem++ ;

printf("\n%6ld %6ld %6ld", x, y, z);

}

dinh ly Pitago", dem);

8 một hàm kiểm tra đối số nguyên dương n có bằng tổng lậ hữ số của nó không

Ví 153 = 1 + 53 + 33

*

for (y=1; y<=25; y++)

{

z

if (z*z == x*x + y*y)

{

}

printf("\n Bo so la %ld so thoa man

getch();

}

Viết

p phương các c

3 dụ :

Thuật toán:

,i,t

m = n mod 10;

tam*tam;

Tạo hàm TongLapPh

Khai báo các biến tam, sum3

Gán

i=0; sum3=0;

làm

Gán i=i+1;

ta

sum3= sum3 + tam*

n= n div 10;

Chừng nào n>0;

Hàm trả về =sum3;

* Chương trình

io.h>

h>

gLapPhuong(int n);

apPhuong (int n)

,tam;

i++;

n%10;

sum3=sum3+tam*tam*tam;

#include <std

#include <math.h>

#include <conio

int Ton

int TongL

{

clrscr();

int sum3,i

i=0; sum3=0;

do {

tam=

Trang 13

k n k

k

C C

n

C

n

n − 1

,&n);

r=n;

t=TongLapPhuong(n);

/*Co tong lap phuong cac chu so :TLPCCS*/

if (t==stor) printf("%d Co TLPCCS bang chinh no");else

getch();

}

Viê tính tổ hợp n chập k

In kết quả của câu a và b

n=n/10;

} while (n>0);

return sum3;

}

main()

{

clrscr();

int n; int t,stor;

printf(" nhap so nguyen N=");

scanf("%d"

sto

printf("khong thoa man dk");

9 út 2 hàm để

b

)!

!*(n k

!

n

C n k =

c

* Chương trình

1(int n, int k)

||(k==n)) ketqua=1;

else ketqua=Th1(n-1,k-1)+Th1(n-1,k);

qua;

rintf("\nCopyright by Nguyen van Nguyen khoa CNTT ");

a tri N va K : ");

canf("%d%d", &n, &k);

#include <conio.h>

#include <stdio.h>

int Th

{

int ketqua;

if ((k==0)

return ket

}

long TOHOP(int k, int n);

/* Chuong trinh tinh to hop cua n chap k*/

void main()

{

int n, k;

clrscr();

p

printf("\nNhap vao gi

s

Trang 14

printf("Top hop chap %d cua %d = %lu\n", k, n, TOHOP(k, n));

o hop theo cach de quy=%d",Th1(n,k));

n)

int i;

Result *= i;

return Result;

{

}

ø tính tổng S

Chương trình

printf("T

getch();

}

long giaithua(int

{

long Result = 1;

for (i=2; i<=n; i++)

}

long TOHOP(int k, int n)

return giaithua(n) / (giaithua(k) * giaithua(n-k));

10 Hãy viết 1 hàm đệ quy đê

n a a

a

S = 1 + 12 + + 1

*

stdio.h>

<math.h>

Tong(int n,float x)

qua;

t=1;

=1;i<=n;i++)

t=t*x;

/t+Tong(n-1,x);

qua;

#include <

#include

#include <conio.h>

float

{

float ket

float t;

int i;

if (n==0) ketqua=1;

else

{

for(i

ketqua=1

}

return ket

}

main()

{

clrscr();

Trang 15

float a;

int i,n;

printf("nhap a=");

scanf("%f",&a);

scanf("%d",&n);

getch();

*

printf("nhap n=");

printf(" ket qua theo ham=%3f",Tong(n,a));

}

Hãy viết 1 hàm đệ quy để tính ai, rồi viết một hàm gọi h

n a a

S = 1+ 1 + + 1

Thuật toán:

+ Có thể khai báo các biến toàn cục

guyên

THUA(x:kiểu thực,n:kiểu nguyên)

t=x*lt(x,n-1);

);

các biến địa phương s1,t1:kiểu thực,i:kiểu nguyên

Cho i=1 đến n làm

/lt(x,i);

ình chính a);

ương trình

a:kiểu thực n:kiểu n + Tạo hàm tính a mũ lUY

Nếu (n==0) thì lt=1

Ngược lại l

+ Tạo hàm TINH(n:byte;x:real

Khai báo

Gán s1=1;

Gán s1:=s1+1

Viết s1

+ Trong chương tr

Đọc n,a

Gọi hàm TINH(n,

* Ch

.h>

ude <conio.h>

0) Lt=1; else Lt=x*LUYTHUA(x,n-1);

t TINH(int n, float x)

#include <stdio.h>

#include <math

#incl

float LUYTHUA(float x,int n)

{

float Lt;

if (n==

return Lt;

}

floa

{

Trang 16

float s1=1,t1;

1;i<=n; i++) s1=s1+1/LUYTHUA(x,i);

et qua la=%f",s1);

ntf("nhap a=");

anf("%f",&a);

getch();

}

12 a Viết 1 hàm đệ

thủ tục lặp tính

int i;

for(i=

printf(" k

}

main()

{

float a;

int n;

clrscr();

pri

sc

printf("nhap n=");

scanf("%d",&n);

TINH(n,a);

quy để tính S

n i

b Hãy viết 1 rồi gọi lồng vào 1 hàm để

út quả bằng hàm chuẩn để so sánh)

:

tính tổng S (In kê

ïn

* Thuật toa

Gợi ý: Thuật toán tính căn bặc n của x bằng phương pháp xấp xỉ (không dùng hàm chuẩn EXP) Thuật toán tính y= n x

* Nếu x=0 thì y= 0 nếu không

ặt y0=x

ûp lại

y=y0

y0=1/n*((n-1)*y + x/y n-1 )

ãy gọi hàm tính x n để tính y n-1 }

+

+ Đ

+ Lă

{ h

n n

n

S = + + + +

3

3 2

2 1

3

Cho đến khi a bs( y-y0)< epsilon

y:= (y+y0)/2

Chương trình

Trang 17

#include <stdio.h>

<math.h>

e epsilon 0.00001

Mu(float x,float n)

i;

=1;

e

; f(n>0) ketqua=s; else ketqua=1/s;

-*/

Can(float x,float n) ,can;

0=x;

y=y0;

X_Mu(y,n-1));

} while (fabs(y-y0)>epsilon);

)/2;

at tong(float n)

t t=1;

t=t+i/TinhCan(i,i);

t;

y;float kq;

=1;

e

y=exp(1/n*log(n));

#include

#include <conio.h>

#defin

float X_

{

float s,ketqua;

int

if (n==0) ketqua

els

{ s=1;

for(i=1; i<=abs(n); i++) s=s*x

i

}

return ketqua;

}

/* float Tinh

{

float y0,y

if (x==0) can=0;

else

{

y

do {

y0=1/n*((n-1)*y+x/

can=(y+y0

}

return can;

}

flo

{

floa

int i;

for(i=2;i<=n; i++)

return

}

float tongdq(float n)

{

float

if (n==1) kq

els

{

Ngày đăng: 24/07/2014, 00:21

TỪ KHÓA LIÊN QUAN

w