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 1while (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 2clrscr();
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);
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
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 6Phầ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 72 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 8Thuậ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 12for (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 14printf("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 15float 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 16float 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
{