Professional Documents
Culture Documents
Bait Apn MLT
Bait Apn MLT
BI TP MINH HA
HC PHN NHP MN LP TRNH
Mc lc:
Trang 1
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
Bi tp 1:
Vit chng trnh in ra cc dng ch sau y:
#include <stdio.h>
int main (void)
{
printf ("\t1. In C, lowercase letters are significant.\n");
printf ("\t2. main is where program execution begins.\n");
printf ("\t3. Opening and closing braces enclose program statements in a
routine.\n");
printf ("\t4. All program statements must be terminated by a
semicolon.\n");
return 0;
}
Ch :
1. Ngn ng C phn bit ch hoa v ch thng.
2. Mi chng trnh lun c mt v ch mt hm main. Hm main s l ni u tin chng trnh
thc hin.
3. Mi khi c m ngoc th phi c ng ngoc. vd: {} v ()
4. Cc dng lnh phi kt thc bng du chm phy ;
Bi tp 2:
Vit chng trnh tnh ra kt qu ca php tr 15 cho 87, v xut kt qu ra mn hnh.
#include <stdio.h>
int main (void)
{
int x = 15;
int y = 87;
int z = x y;
printf ("%d - %d = %d", x, y, z);
return 0;
}
Bi tp 3:
Vit on chng trnh sau y m khng c cc k t bi en, sau bin dch chng trnh (F7) v
xem thng bo li. Ghi ch li cc li m chng trnh thng bo. Sau , sa li chng trnh cho
ng v bin dch li.
Ghi ch: thng bo li s hin ra ca s pha di ca Visual C++. Nhn F4 ln lt nhy n cc li.
#include <stdio.h>
#define TWENTYFIVE 25;
int main ()
{
Trang 2
BI TP MINH HA MN NHP MN LP TRNH
int sum;
/* COMPUTE RESULT */
sum = TWENTYFIVE + 37 19;
/* DISPLAY RESULTS */
printf ("The answer is %i\n", sum);
return 0;
}
Bi tp 4:
Vit on chng trnh sau y v d on kt qu ca chng trnh. Sau bin dch v chy chng
trnh xem kt qu chnh xc. Nu kt qu khc vi mnh d on th phn tch xem ti sao li nh vy.
#include <stdio.h>
int main ()
{
int answer, result;
answer = 100;
result = answer - 10;
printf ("The result is %i\n", result + 5);
return 0;
}
The result is 95
Bi tp 5:
D on kt qu ca chng trnh sau v gii thch ti sao. Chy chng trnh v so snh kt qu tht s
vi kt qu d on.
#include <stdio.h>
#define PRINT(format,x) printf ("x = %"#format"\n", x)
int main (void)
{
int integer = 5;
char character = '5';
PRINT(d, character); PRINT(d, integer);
PRINT(c, character); PRINT(c, integer=53);
return 0;
}
x = 53
x = 5
x = 5
x = 5
Bi tp 6:
D on kt qu ca chng trnh sau v gii thch ti sao. Chy chng trnh v so snh kt qu tht s
vi kt qu d on.
#include <stdio.h>
#define PR(x) printf("x = %.8g\t", (double)x)
#define PRINT4(x1,x2,x3,x4) PR(x1); PR(x2); PR(x3); PR(x4)
int main (void)
{
double d;
float f;
long l;
int i;
Trang 3
BI TP MINH HA MN NHP MN LP TRNH
x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33.333332 x = 33.333333
Bi tp 7:
Vit chng trnh tnh gi tr biu thc sau v gii thch kt qu.
3x3 - 5x2 + 6
Vi x = 2.55.
#include <stdio.h>
int main (void)
{
float x = 2.55;
float y = 3*x*x*x - 5*x*x + 6;
printf ("%f", y);
return 0;
}
23.231623
3. Vit chng trnh thc hin cc yu cu sau (khng dng hm chuyn i):
a. Nhp vo mt k t v in ra m ASCII tng ng vi k t .
b. Nhp vo mt s nguyn (1 255) v in ra k t c m ASCII tng ng.
4. Nhp vo bn knh ca hnh trn, tnh v in ra chu vi, din tch ca hnh trn .
Trang 4
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP THM C KH CAO
1. Nhp vo bn knh y R v chiu cao h ca hnh tr trn, tnh din tch y, din tch xung quanh
v th tch ca hnh tr trn theo cng thc (cc s liu l s thc, gi tr PI c C nh ngha
sn bng hng s M_PI):
a. S y R 2
b. S xungquanh 2Rh
c. V S y h
3. Nhp s tin nguyn N ng, i ra xem c bao nhiu t 10 ng, 5 ng, 2 ng v 1 ng.
V d:
N = 543 = 54 t 10 + 0 t 5 + 1 t 2 + 1 t 1
5. Vit chng trnh nhp gi, pht, giy v thc hin kim tra tnh hp l ca d liu nhp vo.
6. Vit chng trnh nhp 2 gi (gi, pht, giy) v thc hin tnh '+' v '-' ca 2 gi ny.
Trang 5
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
Bi tp 1
Vit chng trnh nhp vo mt s x, nu x = 100 th xut ra thng bo Gia tri cua x la 100,
ngc li, xut ra thng bo Gia tri ca x khac 100.
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
int x;
cout << "Nhap x = ";
cin >> x;
if(x == 100)
cout << "\nGia tri cua x la 100 ";
if(x != 100)
cout << "\nGia tri cua x khac 100 ";
return 0;
}
Bi tp 2
Gii phng trnh bc 1: ax + b = 0
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
float x, a, b;
cout << "Nhap a = ";
cin >> a;
cout << "Nhap b = ";
cin >> b;
if(a == 0)
{
if(b == 0)
cout << "\nPhuong trinh co vo so nghiem. " << endl;
else
cout << "\nPhuong trinh vo nghiem. " << endl;
}
else
{
cout << "\nPhuong trinh co nghiem duy nhat: x = " << -b/a << endl;
}
return 0;
}
Bi tp 3
Nhp vo 1 thng, nm, cho bit thng c bao nhiu ngy.
Trang 6
BI TP MINH HA MN NHP MN LP TRNH
#include <stdio.h>
#include <conio.h>
void main()
{
//khai bao bien
int ngay, thang, nam;
int nhuan;
//nhap du lieu
printf("Nhap vao mot thang: ");
scanf("%d",&thang);
printf("Nhap vao mot nam: ");
scanf("%d",&nam);
//kiem tra nam nhuan
nhuan = 0;
if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0))
nhuan = 1;
ngay = 0;
switch (thang)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
ngay = 31;
break;
case 4:
case 6:
case 9:
case 11:
ngay = 30;
break;
case 2:
if (nhuan == 1) ngay = 29;
else ngay = 28;
break;
}
printf("So ngay cua thang %d cua nam %d la: %d",thang, nam, ngay);
getch();
}
Trang 7
BI TP MINH HA MN NHP MN LP TRNH
3. Nhp vo 4 s a, b, c, d.
a. In ra s ln nht v s nh nht.
b. In ra 2 s khng phi s ln nht v s nh nht.
CC BI TP THM C KH CAO
1. Vit chng trnh nhp vo ngy, thng, nm. Hy cho bit ngy k tip v ngy trc ca ngy
. (c code tham kho bn di)
#include <stdio.h>
#include <conio.h>
void main()
{
//khai bao bien
int ngay, thang, nam;
int ngaytruoc, ngayke;
int nhuan;
//nhap du lieu
printf("Nhap vao mot ngay: ");
scanf("%d",&ngay);
printf("Nhap vao mot thang: ");
scanf("%d",&thang);
printf("Nhap vao mot nam: ");
scanf("%d",&nam);
//kiem tra nam nhuan
nhuan = 0;
if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0))
nhuan = 1;
Trang 8
BI TP MINH HA MN NHP MN LP TRNH
ngaytruoc = ngay-1;
ngayke = ngay+1;
switch (thang)
{
case 1:
case 5:
case 7:
case 10:
case 12:
case 4:
case 6:
case 9:
case 11:
if (ngay == 30)
{
ngaytruoc = 29;
ngayke = 1;
}
else
{
ngaytruoc = ngay-1;
ngayke = ngay+1;
}
break;
case 2:
if (nhuan == 1)
{
if (ngay == 29)
{
ngaytruoc = 28;
ngayke = 1;
}
else if (ngay == 1)
{
ngaytruoc = 31;
ngayke = 2;
}
}
else
if (ngay == 28)
{
ngaytruoc = 27;
ngayke = 1;
}
else if (ngay == 1)
{
ngaytruoc = 31;
ngayke = 2;
}
break;
case 3:
if (ngay == 31)
{
ngaytruoc = 30;
ngayke = 1;
}
else if (ngay == 1)
{
if (nhuan == 1)
{
ngaytruoc = 29;
Trang 9
BI TP MINH HA MN NHP MN LP TRNH
ngayke = 2;
}
else
{
ngaytruoc = 28;
ngayke = 2;
}
}
break;
case 8:
if (ngay == 31)
{
ngaytruoc = 30;
ngayke = 1;
}
else if (ngay == 1)
{
ngaytruoc = 31;
ngayke = 2;
}
break;
}
printf("Ngay truoc cua ngay %d cua thang %d cua nam %d la: %d",ngay,
thang, nam, ngaytruoc);
printf("\n");
printf("Ngay ke tiep cua ngay %d cua thang %d cua nam %d la: %d",ngay,
thang, nam, ngayke);
getch();
}
Trang 10
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
Cch 1:
#include <stdio.h>
void main()
{
int n;
long s = 0;
printf("nhap vao n ");
scanf("%d", &n);
while (i <= n)
{
s += i;
i++;
}
printf("ket qua la: s= %ld", s);
}
#include <stdio.h>
void main()
{
int n;
long s = 0;
printf("nhap vao n ");
scanf("%d", &n);
for (int i = 1;i <=n;i++)
if(!(i%4) && i%5)
s += i;
printf("ket qua la: s= %ld", s);
}
#include <stdio.h>
void main()
{
int k,n;
do
{
printf("nhap so nguyen n: ");
scanf("%d",&n);
} while (n<=0 || n>=50);
k=n-1;
while (k>1)
{
int t=2;
while (k%t!=0)
t++;
if(t==k)
Trang 11
BI TP MINH HA MN NHP MN LP TRNH
{
printf("so nguyen to lon nhat nho hon %d la %d\n", n, k);
break;
}
k--;
}
if(k<=1)
printf("khong co so nguyen to nao nho hon %d",n);
}
Bi 4: Nhp vo 1 s nguyn dng, xut ra s ngc li. VD: nhp 123, xut ra 321
#include <stdio.h>
void main()
{
int n;
do
{
printf("nhap so nguyen duong n: ");
scanf("%d",&n);
} while (n<=0);
int don_vi = n%10;
while (don_vi!=0)
{
printf("%5d", don_vi);
n = n/10;
don_vi = n%10;
}
}
1. Tnh S = 13 +23 + 33 + + N3
2. Tnh S = 12 +22 + 32 + + N2
3. Tnh S = 1 + 1/2 + 1/3 + . + 1/n
4. Tnh S = 1/(1x2) + 1/(2x3) + 1/(3x4) + .. + 1/(n x (n+1))
5. Tnh S = 1 + 1.2 + 1.2.3 + . + 1.2.3.n
6. Tnh S = 1 + x + x2 + .. + xn
7. Tnh S = 1! + 2! + 3! +.. + n!
8. Tm s nguyn dng n nh nht sao cho 1 + 2 + 3 + + n > 1000
9. Tm v in ln mn hnh tt c cc s nguyn trong phm vi t 10 n 99 sao cho tch ca 2 ch s
bng 2 ln tng ca 2 ch s .
10. Tm cc c s chung nh nht ca 2 s nguyn dng
11. Kim tra 1 s c phi l s nguyn t hay khng.
12. In ra tt c cc s nguyn t nh hn s n c nhp vo t bn phm.
Trang 12
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP THM C KH CAO
1. Kim tra xem cc ch s ca s nguyn dng n c gim dn/ tng dn t tri sang phi khng.
2. Kim tra xem 1 s nguyn dng n c phi l s i xng/ s ton s l/ s ton s chn khng
3. Tm ch s ln nht, nh nht ca s nguyn dng n.
4. S 2 * N 2 * ( N 1) ... 4 2
1 1 1 1
5. S
0! 1! 2! n!
x3 x5 x 2 n 1
6. S x ...(1) n vi < x <
3! 5! (2n 1)!
x2 x4 n x
2n
7. S 1 ...(1) vi < x <
2! 4! (2n)!
1
8. 1 x x 2 x 3 x n vi 1 < x < 1
1 x n 0
1 1 1 6
(1) n 2 n
9. cos(x) 1 x 2 x 4 x x vi < x <
2 24 720 n 0 ( 2n)!
1 1 1 1 (1) n 2 n 1
10. arccotan( x) x x3 x5 x7 x9 x
2 3 5 7 9 2 n 0 2n 1
1 1 1
( 1) n 1 2 n 1
11. arctan( x) x x 3 x 5 x 7 x vi 1 < x < 1
3 5 7 n 1 2 n 1
1 2 1 3 1 4 1
12. e x 1 x x x x x n vi < x <
2 6 24 n 0 n!
1 2 1 3 1 4
( 1) n 1 n
13. ln(1 x) x x x x x vi < x <
2 3 4 n 1 n
1 x 2 3 2 5 2 7
2
14. ln 2x x x x x 2 n1 vi < x <
1 x 3 5 7 n 1 2n 1
1 1 5 1 7
(1) n 2 n1
15. sin( x) x x 3 x x x vi < x <
6 120 5040 n 0 ( 2n 1)!
16. Nhp s nguyn dng n. (i) Kim tra c phi l s nguyn t; (ii) Tm cc tha s nguyn
t ca n; (iii) In cc ch s t phi qua tri, (iv) In cc ch s t tri qua phi (ch s
0); (v) In ra tt c cc cp s nguyn dng a v b (a b) sao cho: a 2 b 2 n . (vi) Nhp
s nguyn k. In ra k s thp phn ng sau du thp phn (ch : 10k c th trn s).
Trang 13
BI TP MINH HA MN NHP MN LP TRNH
17. Nhp 2 s nguyn dng a, b khc khng. (i) Tm USCLN(a, b); (ii) Tm hai s nguyn x
v y sao cho: USCLN(a, b) = a * x + b * y.
18. Nhp s nguyn dng n. Cho bit l (i) s i xng, (ii) s gn i xng, (iii) cc ch
s xp tng dn hay gim dn khng? (iv) tng cc ch s cho n khi nh hn 10, (v) ch
s ln v nh nht.
19. Xc nh phn t th k ca dy Fibonacci: f 0 0, f1 1, f k f k 1 f k 2 , vi k 2.
20. In ra bnh phng ca n s nguyn dng u tin, nhng (i) ch d ng php + v php
; (ii) Ch d ng php +.
Trang 14
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
#include "stdafx.h"
#include stdio.h
void main()
{
int n;
long S = 0;
printf(" Nhap gia tri n : ");
scanf("%d",&n);
if ( n <= 0)
{
printf("Gia tri n khong hop le.\n");
return;
}
for (int i=1;i<=n;i++)
S = S + i;
printf("Tong n so tu nhien dau tien la : S = %ld \n",S);
}
Bi 2: Vit chng trnh cho php ngi d ng nhp mt s nguyn N > 1. Cho bit N c phi l s
nguyn t hay khng ?
Gi :
kim tra N c phi l s nguyn t hay khng th ta kim tra xem N c c s trong on [2, n-1]
khng ? Nu c c s trong on th N khng phi l s nguyn t.
#include "stdafx.h"
#include stdio.h
void main()
{
int n,i;
printf("Nhap gia tri N :");
scanf("%d",&n);
if (n <= 1)
{
printf(" Gia tri N khong hop le.\n");
return;
}
for (i=2; i<=n -1; i++)
{
if ( n%i == 0)
{
printf("N khong phai la so nguyen to.\n");
return;
}
}
printf(" N la so nguyen to. \n");
}
Trang 15
BI TP MINH HA MN NHP MN LP TRNH
Bi 3: Vit chng trnh v mt hnh ch nht bng cc du * vi chiu di v chiu rng do ngi
d ng nhp vo.
#include "stdafx.h"
#include stdio.h
void main()
{
int m,n,i,j;
printf("Nhap chieu dai hinh chu nhat : m = ");
scanf("%d",&m);
printf("Nhap chieu rong hinh chu nhat : n = ");
scanf("%d",&n);
printf("\n");
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
printf("*");
printf("\n");
}
}
Bi 4: Vit chng trnh o ngc mt dy s vi cc cch s dng vng lp For khc nhau.
Cch 1:
#include "stdafx.h"
#include stdio.h
int x[] = {1,2,3,4,5};
int n = sizeof(x)/sizeof(int);
void main()
{
int i,j;
int c;
for (i=0, j=n-1; i<j; ++i,--j)
{
c= x[i];
x[i] = x[j];
x[j] = c;
}
printf("\n Day ket qua la :\n");
for (i=0; i<n; i++)
printf(" %d", x[i]);
}
Cch 2:
#include "stdafx.h"
#include stdio.h
int x[] = {1,2,3,4,5};
int n = sizeof(x)/sizeof(int);
void main()
{
int i,j;
int c;
for (i=0, j=n-1; i<j; c=x[i], x[i]=x[j], x[j]=c, i++, j--)
{
// than FOR rong
}
printf("\n Day ket qua la :\n");
for (i = -1; ++i < n ;) // vang thanh phan thu 3
printf(" %d", x[i]);
}
Trang 16
BI TP MINH HA MN NHP MN LP TRNH
Cch 3:
#include "stdafx.h"
#include stdio.h
int x[] = {1,2,3,4,5};
int n = sizeof(x)/sizeof(int);
void main()
{
int i=0,j=n-1;
int c;
for ( ; ; ) // cau lenh FOR vang ca 3 thanh phan
{
c= x[i];
x[i] = x[j];
x[j] = c;
if (++i >= --j) break;
}
printf("\n Day ket qua la :\n");
for (i=0; i-n; ) // thay quan he i<n bang bieu thuc i-n
printf(" %d", x[i++]);
}
Cch 4:
#include "stdafx.h"
#include stdio.h
int x[] = {1,2,3,4,5};
int n = sizeof(x)/sizeof(int);
void main()
{
int i=0,j=n-1;
int c;
for ( ; c=x[i],x[i]=x[j],x[j]=c, ++i<--j; );
Bi 5: Vit chng trnh tm c s chung ln nht (USCLN) ca hai s a v b, s dng vng lp FOR.
#include "stdafx.h"
#include stdio.h
void main()
{
int a,b;
Trang 17
BI TP MINH HA MN NHP MN LP TRNH
1. Xut tt c cc k t t a n z, A n Z, 0 n 9
2. Xut ra bng m ASCII: gm 2 ct: k t v m ASCII, yu cu hin th thnh tng trang mt,
3. Tnh tng cc s nguyn t nh hn 1000
4. Vit chng trnh nhp vo 1 s nguyn , hy vit cch c s nguyn
5. Vit chng trnh in bng cu chng ra mn hnh
6. Cn c tng 20000 t 3 loi tin 10000, 20000, 50000. Hy cho bit tt c cc phng n .
7. Cc bi ton v hnh: tam gic, hnh ch nht, cy thng,
8. Lit k tt c cc c s ca s nguyn dng n. Cho bit c bao nhiu c s v tm tng ca tt
c cc s c s .
9. Tm BSCNN ca 2 s nguyn dng a, b.
10. Kim tra 1 s c phi l s nguyn t khng.
11. Tm ch s o ngc ca s nguyn dng n
12. Tm ch s ln nht/ nh nht ca s nguyn dng n
13. m s lng ch s, tnh tng cc ch s ca s nguyn dng n
14. m s lng ch s l/ chn ca s nguyn dng n.
15. Tnh dy Fibonacci:
F0 = 0, F1 = 1, Fn = Fn-1 + Fn-2
CC BI TP THM C KH CAO
Lm li cc bi kh ca chng trc vi vng lp for
Trang 18
BI TP MINH HA MN NHP MN LP TRNH
Trang 19
BI TP MINH HA MN NHP MN LP TRNH
Trang 20
BI TP MINH HA MN NHP MN LP TRNH
Trang 21
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
#include stdafx.h
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
NhapMang(a, n);
XuatMang(a, n);
return 0;
}
/***************************************************************/
int TinhTongCacPhanTu(int a[], int n)
{
int s = 0;
for(int i=0; i<n; i++)
s = s + a[i];
return s;
}
cout << "\n... Phat sinh tu dong cac phan tu trong mang...\n";
for(int i=0; i<n; i++)
{
a[i] = rand()%90 + 10;
}
}
Trang 22
BI TP MINH HA MN NHP MN LP TRNH
{
cout << a[i] << " ";
}
#include stdafx.h
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
NhapMang(a, n);
XuatMang(a, n);
int x = 0;
cout << "\nNhap phan tu x muon tim: ";
cin >> x;
int so_lan_xuat_hien = DemSoLanXuatHienMotPhanTu(a, n, x);
cout << "\nSo lan xuat hien phan tu " << x << " la "
<< so_lan_xuat_hien << " lan\n";
return 0;
}
/***************************************************************/
int DemSoLanXuatHienMotPhanTu(int a[], int n, int x)
{
int so_lan_xuat_hien = 0;
for(int i=0; i<n; i++)
{
if(a[i] == x)
so_lan_xuat_hien++;
}
return so_lan_xuat_hien;
}
/********************** Cac ham nhap xuat **********************/
/* ... */
3. Trn 2 mng mt chiu a, b cc phn t xen k nhau thnh mt mng mt chiu (a, b c th c s
phn t khc nhau).
/*********************************************************************/
/* ... */
Trang 23
BI TP MINH HA MN NHP MN LP TRNH
srand((unsigned int)time(NULL));
Tron2Mang(a, n, b, m, c);
cout << "\nMang c la ket qua tron 2 mang a, b :";
XuatMang(c, n + m);
return 0;
}
/***************************************************************/
void Tron2Mang(int a[], int n, int b[], int m, int c[])
{
int min = (n>m ? m:n);
int i = 0, j = 0;
for(i=0; i<min; i++, j+=2)
{
c[j] = a[i];
c[j+1] = b[i];
}
while(i<n)
{
c[j++] = a[i++];
}
while(i<m)
{
c[j++] = b[i++];
}
/* ... */
/********************************************************************/
/*********************************************************************/
/* ... */
Trang 24
BI TP MINH HA MN NHP MN LP TRNH
srand((unsigned int)time(NULL));
int x;
cout << "\nNhap phan tu x muon xoa: ";
cin >> x;
cout << "\nMang a sau khi xoa phan tu " << x << " : ";
Xoa1PhanTu(a, n, x);
XuatMang(a, n);
return 0;
}
/***************************************************************/
void Xoa1PhanTu(int a[], int &n, int x)
{
int b[100];
for(int i=0; i<n; i++)
b[i] = a[i];
int m = 0;
for(i=0; i<n; i++)
{
if(b[i] != x)
a[m++] = b[i];
}
n = m;
}
/* ... */
/*********************************************************************/
/*********************************************************************/
/* ... */
return 0;
}
/***************************************************************/
void TaoMangFibonaci(int a[], int n)
Trang 25
BI TP MINH HA MN NHP MN LP TRNH
{
int f1 = 0;
int f2 = 1;
int f;
a[0] = f1;
a[1] = f2;
for(int i=2; i<n; i++)
{
f = f1 + f2;
a[i] = f;
f1 = f2;
f2 = f;
}
}
/* ... */
/*********************************************************************/
CC BI TP THM C KH CAO
1. Trn 2 mng mt chiu c c ng di thnh mt mng mt chiu vi mi phn t ca mng mi
l tng ca 2 phn t tng ng t 2 mng cho trc.
2. Xa n phn t lin tc trn mng bt u t mt v tr x cho trc.
3. Nhp vo 2 mng c c ng kch thc, to mng mi gm cc phn t l UCLN ca 2 phn t
tng ng.
4. Tnh tng giai tha ca cc phn t trong mng cho trc.
5. Nhp vo 2 mng mt chiu, xa trn 2 mng ny tt c cc phn t tr ng nhau ca 2 mng.
Trang 26
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
/*********************************************************************/
/* ... */
srand((unsigned int)time(NULL));
NhapMang(a, n);
XuatMang(a, n);
int x;
cout << "\nNhap phan tu x tim: ";
cin >> x;
return 0;
}
/***************************************************************/
/* Neu tim thay x thi tra ve vi tri xuat hien lan dau tien
cua x trong mang. Neu khong tim thay x thi tra ve gia tri -1*/
int TimKiem(int a[], int n, int x)
{
int vitri = -1;
for(int i=0; (i < n) && (vitri == -1); i++)
{
if(x == a[i])
{
vitri = i;
}
}
return vitri;
}
/* ... */
/*********************************************************************/
Trang 27
BI TP MINH HA MN NHP MN LP TRNH
/* .................................................................. */
void SapXep(int[], int, bool);
void HoanVi(int&, int&);
srand((unsigned int)time(NULL));
return 0;
}
if(bSapTang == true)
{
if(a[j] < a[i])
HoanVi(a[i], a[j]);
}
else
{
if(a[j] > a[i])
HoanVi(a[i], a[j]);
}
}
}
}
/* .................................................................. */
Trang 28
BI TP MINH HA MN NHP MN LP TRNH
/*********************************************************************/
/* ... */
/* ... */
/* ... */
/*********************************************************************/
4. o ngc mng (phn t u tin s v cui mng, phn t cui mng a ln u).
/*********************************************************************/
/* ... */
srand((unsigned int)time(NULL));
NhapMang(a, n);
XuatMang(a, n);
Trang 29
BI TP MINH HA MN NHP MN LP TRNH
return 0;
}
/***************************************************************/
void DaoNguocMang(int a[], int n)
{
for(int i=0; i<n/2; i++)
{
HoanVi(a[i], a[n-i-1]);
}
}
/* ... */
/*********************************************************************/
9. Cho 2 mng a v b c m v n phn t. Nhp s q (nguyn dng). Tm tng a[i + b[j nh nht
nhng ln hn q.
CC BI TP THM C KH CAO
1. Sp xp cc phn t trn mng sao cho cc s dng tng dn v u mng, cc s m gim dn
v cui mng, cc s 0 gia.
2. Sp xp cc phn t trn mng sao cho cc s chn tng dn, cc s l gim dn.
3. Sp xp cc phn t trn mng sao cho cc s chn tng dn v u mng, cc s l gim dn v
cui mng.
4. Kim tra xem c tn ti mng con tng dn hay gim dn khng. Nu c, in mng con tng dn
di nht xut hin trong mng. Nu c nhiu mng c ng di nht th ch cn in ra mt.
Trang 30
BI TP MINH HA MN NHP MN LP TRNH
Trang 31
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
Bi 1: Vit chng trnh nhp, xut mt mng s nguyn hai chiu c m dng v n ct. Xc nh phn t
ln nht v nh nht trong mng.
#include stdafx.h
#include stdio.h
#define max_dong 100
#define max_cot 100
void main()
{
int m,n;
int a[max_dong][max_cot];
int i,j;
Trang 32
BI TP MINH HA MN NHP MN LP TRNH
Bi 2: Vit chng trnh sp xp ma trn cc s thc tng dn t trn xung di v t tri sang phi
bng hai phng php d ng v khng d ng mng ph.
Cch 1 : Khng s dng mng ph.
#include stdafx.h
#include stdio.h
#define max_dong 100
#define max_cot 100
void main()
{
int m,n;
int a[max_dong][max_cot];
int i,j;
}
Cch 2 : S dng mng ph.
#include stdafx.h
#include stdio.h
#define max_dong 50
#define max_cot 50
void main()
{
int m,n;
int a[max_dong][max_cot];
Trang 33
BI TP MINH HA MN NHP MN LP TRNH
int i,j;
Trang 34
BI TP MINH HA MN NHP MN LP TRNH
#define max_dong 50
#define max_cot 50
void main()
{
int m,n;
int a[max_dong][max_cot];
int i,j;
Bi 4: Cho ma trn cc s thc A(m x n). Hy xy dng ma trn B(m x n) t ma trn A sao cho B[i [j =
s lng phn t dng xung quanh A[i [j trong ma trn A ( B[i [j ti a l 8 v nh nht l 0).
#include stdafx.h
#include stdio.h
#define max_dong 50
#define max_cot 50
void main()
{
int m,n;
float a[max_dong][max_cot];
int i,j;
Trang 35
BI TP MINH HA MN NHP MN LP TRNH
Trang 36
BI TP MINH HA MN NHP MN LP TRNH
// su dung mang B luu gia tri tong cac dong cua matrix A
int b[max_dong];
int k = 0;
// sap xep lai mang A theo thong tin tong dong trong B
for (i=0; i<k-1; i++)
for (j=i+1; j<k; j++)
{
if (b[i] > b[j])
{
// hoan vi trong B
int tmp;
tmp = b[i];
b[i] = b[j];
b[j] = tmp;
Trang 37
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP THM C KH CAO
1. Sp xp cc phn t trn mng tng dn trn tng ct v gim dn trn tng dng.
2. Sp xp cc phn t trn mng tng dn ln lut trn dng v trn ct.
3. Tnh tng v tch ca n ma trn.
4. Xoay 1 ma trn theo chiu bt k.
5. Xoay 1 ma trn theo chiu bt k n bc.
6. Xa mt hng hoc mt ct bt k trn mng 2 chiu.
7. Nhp vo 2 mng 2 chiu, tm tt c cc phn t tr ng nhau ca 2 mng v thay vo l s 0.
8. Nhp vo 2 ma trn c ng kch thc n x m, in ra ma trn tng.
9. Nhp vo 2 ma trn c ng kch thc n x m, tnh ma trn tch.
10. Nhp vo 1 ma trn, xut ra ma trn nghch o.
11. Tm gi phn t ln nht v nh nht trn tng dng, tng ct, v trn ton ma trn.
Trang 38
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
1. Nhp mt chui S t bn phm. Kim tra xem chui c phi l chui i xng.
V d:
Nhp: S = aBCdCBa
Xut: i xng
Nhp: S = aBCdBCa
Xut: Khng di xng
tng:
Gi s chui l chui i xng. Nu pht hin 1 v tr m i xng vi n (cng v tr nhng tnh t cui
chui) th chui khng cn i xng na.
Chng trnh:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char str[MAX];
int kq = LaChuoiDoiXung(str);
if (kq==1)
printf("Chuoi \"%s\" la chuoi doi xung.", str); // S dng \ xut
else
printf("Chuoi \"%s\" khong phai la chuoi doi xung.", str);
getch();
}
return Flag;
}
Ghi ch:
Trang 39
BI TP MINH HA MN NHP MN LP TRNH
C th khng cn s dng bin Flag kim tra m c th return 0; ngay khi kim tra thy c v tr
khng cn i xng. C th nh sau:
2. Nhp mt chui S t bn phm. Tm k t xut hin nhiu nht trong chui v s ln xut
hin.
V d:
Nhp: S = Nguyen Thi B
Xut: n 2 ln
tng:
- Dng 2 bin lu k t xut hin nhiu nht v s ln xut hin nhiu nht .
- Ban u k t xut hin nhiu nht cha c nn s ln xut hin nhiu nht l 0.
- Xt 1 k t ti v tr i. m xem t v tr i v sau k t ny xut hin bao nhiu ln. Nu s ln xut hin
ny nhiu hn s ln hin ti th ta cp nht k t xut hn nhiu nht v s ln xut hin nhiu nht
trng vi k t va xt.
Chng trnh:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char str[MAX];
char chr;
int max = KyTuXuatHienNhieuNhat(str, chr);
if (max!=0) // Trng hp max khc 0 Chui khng rng
printf("Ky tu %c xuat hien nhieu nhat la %d lan.", chr, max);
else
printf("Chuoi rong! Khong co ky tu xuat hien nhieu nhat.);
getch();
}
Trang 40
BI TP MINH HA MN NHP MN LP TRNH
return max;
}
tng:
- Xa cc khong trng d bn tri chui.
- Xa cc khong trng d bn phi chui.
- Nu tm c 2 k t khong trng dnh nhau trong chui th xa bt 1 khong trng.
- Cho tt c thnh ch thng.
- Cp nht k t u tin v cc k t m trc n l khong trng thnh ch hoa.
Chng trnh:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char str[MAX];
Trang 41
BI TP MINH HA MN NHP MN LP TRNH
ChuanHoaChuoi(str);
// Ch u tin l ch hoa
str[0] = str[0]-32;
Trang 42
BI TP MINH HA MN NHP MN LP TRNH
Lu :
- C th vit 1 hm xa 1 k t ti v tr x trong chui s dng chung (xem nh Bi tp)
- K t kt thc chui l k t \0
- Do k t thng ng sau k t hoa 32 k t trong bng max ASCII nn mun i k t thng sang
hoa th ta tr gi tr ca k t thng vi 32. n gin hn l s dng hm toupper trong th vin
ctype.h.
4. Vit chng trnh nhp mt s nguyn, xut li s dng chui nhng c du , ngn cch
hng triu, ngn.
V d:
Nhp: N = 123456789
Xut: S = 123,456,789
tng:
Chuyn s N sang chui S. i li t cui chui v c 3 k t s chn du phy vo.
Chng trnh:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
unsigned int N;
printf("Nhap mot so N: ");
scanf("%d", &N);
char str[MAX];
itoa(N, str, 10); // i s N sang chui str c s 10
for (int i=length; i>pos; i--) // y chui sang phi sau v tr pos
str[i] = str[i-1];
Trang 43
BI TP MINH HA MN NHP MN LP TRNH
V d:
Nhp: S1 = 2912 S2 = 176
Xut: S = 3088
tng 1:
i 2 chui sang 2 s. Cng 2 s ri i ngc sang chui. Cch ny ch lm trong trng hp chui
s ngn bin s cn sc cha.
tng 2:
Thc hin php cng nh cng bng tay. tin ta thm cc s 0 vo u chui s ngn 2 chui s di
bng nhau.
Chng trnh:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char a[MAX];
char b[MAX];
char c[MAX];
/*
Chn s 0 vo u chui ngn hn
i vi chui ngn hn, ta thc hin 3 bc:
- o chui
- Thm s 0 vo n khi di chui ngn = chui di
- o chui li
*/
if (strlen(a)<strlen(b))
{
strrev(a);
while (strlen(a)<strlen(b))
strcat(a, "0");
strrev(a);
}
else
{
strrev(b);
while (strlen(b)<strlen(a))
strcat(b, "0");
strrev(b);
}
Trang 44
BI TP MINH HA MN NHP MN LP TRNH
strrev(c);
printf(" %s + %s = %s", a, b, c);
getch();
}
void main()
{
char a[MAX];
char b[MAX];
char c[MAX];
int temp;
strrev(a);
strrev(b);
int ablength;
ablength = strlen(a) < strlen(b) ? strlen(b) : strlen(a);
/*
Cu lnh trn tng ng vi cu lnh if sau (xem li ton t 3 ngi):
if (strlen(a) < strlen(b))
ablength = strlen(b);
else
ablength = strlen(a);
/*
nc = na + nb + temp;
temp = nc/10;
nc = nc%10;
c[clength++] = nc + 48;
}
if (temp>0)
c[clength++] = temp + 48;
c[clength] = '\0';
Trang 45
BI TP MINH HA MN NHP MN LP TRNH
strrev(a);
strrev(b);
strrev(c);
Trang 46
BI TP MINH HA MN NHP MN LP TRNH
Xut: 1 ln
7. Lp trnh nhp vo t bn phm danh sch hc sinh mt lp, sp xp li danh sch theo th t abc
ca Tn, nu tr ng Tn th sp xp theo th t abc ca H.
8. Vit chng trnh nhp t bn phm 2 xu k t S1 v S2. Hy xt xem S1 c xut hin bao nhiu
ln trong S2 (hoc ngc li S2 xut hin bao nhiu ln trong S1) v ti nhng v tr no?
9. Vit chng trnh nhp mt xu S ch gm cc ch ci thng. Hy lp xu S1 nhn c t xu
S bng cch sp xp li cc k t theo th t abc.
10. Cho xu S ch gm cc du ( v ). Hy kim tra xem S c l mt biu thc ( ) hp l hay
khng.
Lp trnh tnh gi tr ca mt s vit di dng LA M.
11. V d: MDCLXVI = 1666. M:1000 ; D:500 ; C:100; L:50; X :10 ; V:5 ; I :1
CC BI TP THM C KH CAO
1. Khng s dng cc hm c sn. Vit chng trnh chn chui S2 vo chui S1 ti v tr i trong
chui S1.
V d:
Nhp: S1 = Nguyen Van A
S2 = Le
i=8 (Chn chui S2 vo chui S1 ti v tr 8)
Xut: S1 = Nguyen LeVan A
2. Nhp 2 chui S1 v S2 ch gm cc k s t bn phm. Xut ra tng ca 2 s .
V d:
Nhp: S1 = 2912 S2 = 176
Xut: S = 3088
3. Khng s dng cc hm c sn. Kim tra xem chui S2 c nm trong chui S1 hay khng v ti v
tr no.
V d:
Nhp: S1 = Nguyen Van A S2 = Van
Xut: S2 nm trong S1 ti v tr 8.
4. Nhp mt chui S t bn phm. m xem c bao nhiu t c nhiu hn n k t c trong chui S.
Nhp: Nguyen Van A n=2
Xut: 2 t
5. Cho xu k t S. Xt xem c hay khng mt xu X sao cho S l ghp ca mt s ln lin tip ca
X. V du S = abcabc th X l abc, cn nu S = abcab th khng c xu X.
Trang 47
BI TP MINH HA MN NHP MN LP TRNH
7. Cho mt s N rt ln (khng th biu din di dng thp phn mt cc thng thng) c biu
din di dng chui nh phn. Hy tm phn d ca php chia N cho 15 trong h thp phn.
8. Cho N xu k t A1, A2, , AN, N<=100, di ca xu Ai khng qu 10, v mt xu k t S.
Hy tm mi cch biu din S di dng ghp ca cc xu k t Ai, mi xu Si c th xut hin
trong biu din d nhiu ln.
9. Xu M gi l xu con ca S nu ta c th nhn c M t S bng cch xa i mt s k t ca S.
Cho hai xu S1, S2, hy tm xu con M di nht va l xu con ca S1, va l xu con ca S2.
Trang 48
BI TP MINH HA MN NHP MN LP TRNH
CC BI TP C BN
#include <stdio.h>
#include <conio.h>
void main()
{
int n;
printf("Nhap n: ");
scanf("%d", &n);
int kq = GiaiThua(n);
int GiaiThua(int n)
{
if (n==0) // Rt quan trng. y l im thot ca hm quy.
return 1;
else // C th b else v nu ri vo trng hp n=0 th return.
return n*GiaiThua(n-1);
}
Cn ch sc cha ca bin khi khai bo. Hm GiaiThua tr v kt qu kiu int c sc cha khng
trong cc trng hp n ln. Lc ny s xy ra hin tng trn s v dn n cho ra kt qu sai. C th
thay kiu tr v int bng kiu khc c sc cha ln hn nh float hoc double.
Trang 49
BI TP MINH HA MN NHP MN LP TRNH
#include <stdio.h>
#include <conio.h>
void main()
{
int n;
printf("Nhap n: ");
scanf("%d", &n);
int Fibonacy(int n)
{
if (n==0 || n==1) // Rt quan trng. y l im thot ca hm quy.
return 1;
else // C th b else v nu ri vo trng hp n=0 hoc n = 1 th return
return Fibonacy(n-1) + Fibonacy(n-2);
}
Trang 50
BI TP MINH HA MN NHP MN LP TRNH
3. Nhp mt mng n s nguyn. S dng quy tnh tng gi tr cc phn t c trong mng.
V d:
Nhp: n = 1 v mng a = 4
Xut: Tng = 4
Nhp: n = 5 v mng a = -1 4 6 3 0
Xut: Tng = 12
#include <stdio.h>
#include <conio.h>
void main()
{
int a[MAX];
for (i=0; i<n; i++)
{
printf("Nhap phan tu a[%d]: ", i);
scanf("%d", &a[i]);
}
if (n>0)
{
printf("Mang a vua nhap la: ");
for (i=0; i<n; i++)
printf("%4d", a[i]);
}
Trang 51
BI TP MINH HA MN NHP MN LP TRNH
#include <stdio.h>
#include <conio.h>
void main()
{
int a, b;
int c = USCLN(a,b);
printf("Uoc so chung lon nhat cua %d va %d la: %d", a, b, c);
getch();
}
Trang 52
BI TP MINH HA MN NHP MN LP TRNH
#include <stdio.h>
#include <conio.h>
// u vo: s nguyn n
// u ra: dy biu din nh phn ca s nguyn dng n
void InNhiPhan(int);
void main()
{
int n;
printf("Nhap n: ");
scanf("%d", &n);
InNhiPhan(n);
getch();
}
void InNhiPhan(int n)
{
if (n/2==0) // y l im thot ca hm quy khi khng th chia n tip
printf("%d", n%2);
else // Mun b else y th phi them return; iu kin n/2==0
{
InNhiPhan(n/2); // Ch th t in: in phn cn li trc
printf("%d", n%2); // ri in s d va tm c
}
}
Trang 53
BI TP MINH HA MN NHP MN LP TRNH
S= 2 * N 2 * ( N 1) ... 4 2
Nhp: N = 4
Xut: S = 3,299 (S = 8 6 4 2 )
8. Nhp n.
x3 x5 x 2 n 1
Tnh S x ...(1) n .
3! 5! (2n 1)!
CC BI TP THM C KH CAO
1. Cho n s t nhin x1, x2,, xn. Hy tm UCLN (x1, x2,,xn) bng cch s dng:
UCLN(x1,x2,,xn)= UCLN(UCLN(x1,x2,,x(n-1)),xn)
2. Bi ton m i tun
3. Bi ton 8 qun hu
4. Tm tt c cc hon v ca mt mng c n phn t
5. Dy Fibonacci
6. Cho n qu cn c trng lng m1, m2,,mn. Hy tm cch t mt s qu cn sao cho cn c
cn bng.
7. Cho 1 va li c th tch V v c n vt c cc gi tr a1, a2,, an v th tch tng ng l V1,
V2,,Vn. Hy tm cch xp cc vt vo vali sao cho gi tr ca cc hng ha l cao nht
Trang 54