SlideShare a Scribd company logo
1 of 19
Download to read offline
1. TÌM KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 
2. CHUYỂN ĐỔI CHƯƠNG TRÌNH 
1. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; 
void Result(int *A, int n){ 
count++; printf("n Buoc %d:",count); 
for(int i=0; i<n; i++) printf("%4d",A[i]); 
} 
void main(void){ 
int i, j; 
for(i=0; i<n-1; i++){ 
for(j=i+1; j<n; j++){ 
if(A[i]>A[j]){ 
A[i]=A[i] + A[j]; 
A[j]=A[i]-A[j]; 
A[i]=A[i] – A[j]; 
} 
} 
Result(A,n); 
} 
} 
#include <stdio.h> 
#include <conio.h> 
int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; 
void Result(int *A, int n){ 
count++; printf("n Buoc %d:",count); 
int i=0; 
while (i<n) 
{ 
printf("%4d", A[i]); 
i++; 
} 
} 
void main(void){ 
int i=0, j=i+1; 
while (i<n-1) 
{ 
while (j<n) 
{ 
while(A[i]>A[j]) 
{ 
A[i]=A[i] + A[j]; 
A[j]=A[i]-A[j]; 
A[i]=A[i]-A[j]; 
break; 
} 
j++; 
Result(A,n); 
} 
i++; 
} 
getch(); 
}
2. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; 
void Result(int *A, int n){ 
count++; printf("n Buoc %d:",count); 
for(int i=0; i<n; i++) printf("%4d",A[i]); 
} 
void main(void){ 
int i, j, temp; 
for(i=1; i<n; i++){ temp = A[i]; 
for(j=i-1; j>=0 && temp < A[j]; j--){ 
A[j+1]=A[j]; 
} 
A[j+1] = temp;Result(A,n); 
} getch(); 
}
3. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; 
void Result(int *A, int n){ 
count++; printf("n Ket qua buoc %d:",count); 
for(int i=0; i<n; i++) printf("%4d",A[i]); 
} 
void main(void){ 
int i, j, temp; 
for(i=1; i<n; i++){ 
for(j=n-1; j>=i; j--){ 
if (A[j-1] > A[j]){ 
temp = A[j-1]; A[j-1] = A[j]; A[j] = temp; 
} 
} 
Result(A,n); 
} getch(); 
} 
4. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây: 
#include <stdio.h> 
#include <conio.h> 
int B[]={0,0,0,0,0}, n=5, OK=1, count=0; 
void Result(void){ 
printf("n Ket qua buoc %3d:",++count); 
for (int i=0; i<n; i++) printf("%3d",B[i]); 
} 
void Function1(void){ 
for(int i=n-1; i>=0 && B[i]; i--) 
B[i] =0; 
if(i>=0) B[i]=1; 
else OK=0; 
} 
void main(void){ 
do { 
Result(); 
Function1(); 
} while(OK); 
}
5. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int B[]={0,0,0,0,0}, n=5,k=3, OK=1, count=0; 
void Inketqua(void){ 
printf("n Ket qua %3d:",++count); 
for(int i=0; i<n; i++) printf("%3d",B[i]); 
} 
void Result(void){ 
int i, s=0; 
for (i=0; i<n; i++) if(B[i]) s++; 
if(s==k) Inketqua(); 
} 
void Function1(void){ 
for(int i=n-1; i>=0 && B[i]; i--) 
B[i] =0; 
if(i>=0) B[i]=1; 
else OK=0; 
} 
void main(void){ 
do { 
Result(); 
Function1 (); 
} while(OK); 
} 
6. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; 
int A[]={5,10,15,20,25,30,35}; 
void Inketqua(void){ 
printf("n Ket qua %3d:",++count); 
for(int i=0; i<n; i++) 
if(B[i]) printf("%3d",A[i]); 
} 
void Result(void){ 
int i, s=0; 
for (i=0; i<n; i++) s = s+A[i]*B[i]; 
if(s==k) Inketqua(); 
} 
void Function1(void){ 
for(int i=n-1; i>=0 && B[i]; i--) 
B[i] =0; 
if(i>=0) B[i]=1; 
else OK=0; 
} 
void main(void){ 
do { 
Result(); 
Function1(); 
} while(OK); 
}
7. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; 
int A[]={5,10,15,20,25,30,35}; 
void Inketqua(void){ 
printf("n Ket qua %3d:",++count); 
for(int i=0; i<n; i++) printf("%3d",B[i]); 
} 
void Result(void){ 
int i, s=0; 
for (i=0; i<n; i++) s = s+A[i]*B[i]; 
if(s==k) Inketqua(); 
} 
void Function1(void){ 
for(int i=n-1; i>=0 && B[i]; i--) 
B[i] =0; 
if(i>=0) B[i]=1; 
else OK=0; 
} 
void main(void){ 
do { 
Result(); 
Function1(); 
} while(OK); 
} 
8. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
int B[]={0,0,0,0,0,0,0}, n=7,k=40, OK=1, count=0; 
int A[]={5,10,15,20,25,30,35}; 
void Inketqua(void){ 
printf("n Ket qua %3d:",++count); 
for(int i=0; i<n; i++) printf("%3d",B[i]); 
} 
void Result(void){ 
int i, s=0; 
for (i=0; i<n; i++) s = s+A[i]*B[i]; 
if(s<=k) Inketqua(); 
} 
void Function1(void){ 
for(int i=n-1; i>=0 && B[i]; i--) 
B[i] =0; 
if(i>=0) B[i]=1; 
else OK=0; 
} 
void main(void){ 
do { 
Result(); 
Function1(); 
} while(OK); 
}
9. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
char str[255]="000 001 010 011 100 101 110 111 101 110"; 
void main(void){ clrscr(); 
int n, m=0, k=0;n = strlen(str);char s[32]; 
for(int i=0; i<=n; i++){ 
switch(str[i]){ 
case ' ' : 
case 't': 
case 'n': 
case 'r': 
case '0': 
if (k>0) { 
s[k]='0';m++;k=0; 
printf("n Kết quả bước %d: 
%s",m,s); 
} 
break; 
default: 
s[k++]=str[i]; break; 
} 
} 
} 
10. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 
11. 
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 
int nguyen_to(unsigned long int n){ 
unisened long int i, k=sqrt(n); 
for(i=2; i<=k; i++) if(n%i==0) return(0); 
return(1); 
} 
void main(void){ 
unsigned long int n =2868336900; int k=0,i=2, OK=1; 
do { 
if(nguyen_to(n)) { printf("n Kết quả bước:%d:%ld",++k,n); OK=0;} 
else if (n%i==0){printf("n Kết quả bước:%d: %d",++k,i); n = n/i;} 
else i++; 
} while(OK); 
a) Chứng minh rằng một chương trình được thể hiện bằng tất cả các cấu trúc lệnh (while, 
do..while, for, if..else, switch) đều có thể chuyển đổi thành một chương trình mới cho lại 
kết quả giống như chương trình cũ nhưng chỉ cần dùng tối thiểu cấu trúc lệnh lặp while 
và một số biến phụ. 
b) Áp dụng kết quả trên chuyển đổi các chương trình từ bài 1 đến bài 10 sử dụng tối thiểu 
cấu trúc lệnh lặp while và một số biến phụ. 
}
CHỦ ĐỀ 2-LẬP TRÌNH CHO CÁC BÀI TOÁN DƯỚI ĐÂY 
1. Một xâu nhị phân được gọi là xâu thuận nghịch độc là xâu đọc từ trái sang phải hay từ 
phải sang trái ta vẫn nhận được chính xâu đó (ví dụ xâu: 1010.0101). Hãy duyệt tất cả các 
xâu nhị phân thuận nghịch độc độ dài n. 
2. Viết chương trình liệt kê tất cả các xâu nhị phân độ dài n. 
3. Viết chương trình liệt kê tất cả các tập con k phần tử của 1, 2, ..,n (k≤n). 
4. Viết chương trình liệt kê tất cả các hoán vị của 1, 2, .., n. 
5. Viết chương trình liệt kê tất cả các phần tử của tập 
D { x x x x { } i n} n i = ( , ,.., ) : Î 0,1 ,1 £ £ 1 2 
6. Viết chương trình liệt kê tất cả các phần tử của tập 
{ } 
þ ý ü 
î í ì 
n 
= å 
= £ Î £ £ Î + 
D ( x , x ,.., x ) : a x b , x 0,1 ,1 i n , a , 
b Z n i i i i 
i 
1 
1 2 
7. Viết chương trình liệt kê tất cả các phần tử của tập 
{ } 
þ ý ü 
î í ì 
n 
= å 
= = Î £ £ Î + 
D ( x , x ,.., x ) : a x b , x 0,1 ,1 i n , a , 
b Z n i i i i 
i 
1 
1 2 
8. Cho số tự nhiên n. Hãy viết chương trình thực hiện những công việc sau: 
a. Phân tích n thành thừa số nguyên tố. 
b. Đổi số tự nhiên n thành số ở hệ cơ số b bất kì 1 <b≤36. 
c. Liệt kê tất cả các số nguyên tố có tổng các phần tử là S cho trước. 
d. Liệt kê tất cả các cặp số p, 4p + 1 là nguyên tố nhỏ hơn n. 
e. Liệt kê tất cả các cặp số p, 2p+1 là nguyên tố nhỏ hơn n. 
f. Liệt kê tất cả các số Fibonacci là nguyên tố nhỏ hơn n. 
g. Liệt kê tất cả các số hoàn thiện nhỏ hơn n. 
h. Liệt kê tất cả các các cặp số hữu nghị (a, b) nhỏ hơn n. 
9. Cho số tự nhiên n. Hãy viết chương trình thực hiện những thao tác sau: 
a. Liệt kê tất cả các xâu nhị phân độ dài n (sinh kế tiếp). 
b. Liệt kê tất cả các xâu nhị phân thuận nghịch độc độ dài n(sinh kế tiếp). 
c. Liệt kê tất cả các tập con k phần tử (k≤n) của 1, 2, 3,.., n(sinh kế tiếp). 
d. Liệt kê tất cả các hoán vị của 1, 2, 3, .., n. (sinh kế tiếp) 
e. Liệt kê tất cả các cách chia số n thành tổng các số tự nhiên nhỏ hơn n. (sinh kế tiếp) 
f. Liệt kê tất cả các xâu nhị phân độ dài n (quay lui). 
g. Liệt kê tất cả các xâu nhị phân thuận nghịch độc độ dài n(quay lui). 
h. Liệt kê tất cả các tập con k phần tử (k≤n) của 1, 2, 3,.., n(quay lui). 
i. Liệt kê tất cả các hoán vị của 1, 2, 3, .., n. (quay lui) 
j. Liệt kê tất cả các cách chia số n thành tổng các số tự nhiên nhỏ hơn n. (quay lui) 
k. Liệt kê tất cả các cách đặt n quân hậu trên bàn cờ kích cỡ n×n sao cho chúng không 
ăn được lẫn nhau.
10. Cho hai đa thức Pn(x) và Qm(x). Hãy viết chương trình thực hiện những thao tác sau: 
a. Tạo lập hai đa thức (nhập hệ số cho đa thức từ bàn phím hoặc file) 
a. Tính Pn(x0) và Qm(x0) 
b. Tìm đạo hàm cấp l ≤n của đa thức. 
c. Tìm Pn(x) + Qm(x) 
d. Tìm Pn(x) - Qm(x) 
e. Tìm Pn(x) / Qm(x) và đa thức dư 
11. Cho hai ma trận vuông A cấp n. Hãy viết chương trình thực hiện các thao tác sau: 
a. Tìm hàng, cột hoặc đường chéo có tổng các phần tử lớn nhất. 
b. Tìm ma trận chuyển vị của A 
c. Tìm định thức của A 
d. Tìm ma trận nghịch đảo của A 
e. Giải hệ Phương trình tuyến tính thuần nhất n ẩn AX = B bằng phương pháp Grame 
12. Cho một buffer kí tự gồm n dòng. Hãy viết chương trình thực hiện các thao tác sau: 
a. Tạo lập n dòng văn bản cho buffer. 
b. Đếm số từ trong Buffer. 
c. Tìm tần xuất xuất hiện từ X bất kì trong buffer. 
d. Mã hóa buffer bằng kĩ thuật Parity Bits 
e. Giải mã buffer được mã hóa bằng kĩ thuật parity. 
f. Thay thế từ X bằng từ Y. 
13. Hãy viết chương trình thực hiện những thao tác dưới đây: 
a. Liệt kê các phần tử của tập 
þ ý ü 
î í ì÷ø 
æ = = = å= 
çè 
n 
ö n j j D x x x x a x b 
1 2 , ,, : ; trong đó a1, a2,.., an , b 
i 
1 
là các số nguyên dương, xiÎ{0, 1} j =1, 2, ..,n. 
b. Liệt kê các phần tử của tập 
þ ý ü 
î í ì 
ö çè 
1 2 , ,, : ; trong đó a1, a2,.., an , 
÷ø 
= = å= 
æ k 
= k j j D x x x x a x b 
i 
1 
b là các số nguyên dương, xiÎ{0, 1} j =1, 2, ..,n. 
c. Tính giá trị nhỏ nhất của hàm mục tiêu å= 
f x x x = 
c x 
n i i n 
1 2 ( , ,.., ) trong đó 
i 
1 
( ) { } 
þ ý ü 
î í ì 
Î Î £ Î = å= 
+ 
n 
x x , x ,.., x x , x ,.., x : a x b ; x 0,1 , 
a Z 
1 2 n 1 2 n i i i i i 
1
d. Tính giá trị nhỏ nhất của hàm mục tiêu 
f (x = x1, x2 ,.., xn ) = C[x1, x2 ] + C[x1, x2 ] +.. + C[xn-1, xn ] + C[xn , x1 ] ; trong đó 
= ( )ÎP n x 1, x , x ,.., x 1 1 2 là tập các hoán vị của 1, 2, .., n. C[i,j] ÎZ+ (i, j =1, 2,..,n). 
15 . Ma trận nhị phân là ma trận mà các phần tử của nó hoặc bằng 0 hoặc bằng 1. Cho A = [aij], 
B = [bij] là các ma trận nhị phân cấp m × n (i =1, 2,..,m. j= 1, 2, ..,n). Ta định nghĩa các phép hợp, 
giao, nhân logic và phép lũy thừa cho A và B như sau: 
· Hợp của A và B, được kí hiệu là AÚB là ma trận nhị phân cấp m×n với phần tử ở vị trí 
(i, j) là aij Úbij. 
· Giao của A và B, được kí hiệu là AÙB là ma trận nhị phân cấp m×n với phần tử ở vị trí 
(i,j) là aijÙbij. 
· Tích boolean của A và B, được kí hiệu là AQB là ma trận nhị phân cấp m×n với phần tử 
ở vị trí (i,j) là cij = (ai1Ùb1j) Ú (ai2Ùb2j)Ú..Ú( (aikÙbkj). 
· Nếu A là một ma trận vuông nhị phân cấp n và r là một số nguyên dương. Lũy thừa 
Boolean bậc r của A được kí hiệu là Ar = AQAQ..QA (r lần). 
ù 
ú ú ú 
10 
A B AB 
110 
011 
011 
û 
é 
ÞQ= 
ê ê ê 
ë 
ù 
ú ú ú 
û 
é 
= 
ê ê ê 
ù 
ú ú ú 
ë 
û 
ê ê ê 
110 
110 
01 
; 
10 
101 
111 
011 
, 
010 
000 
110 
é 
=Ùúû 
ù 
ABABAB 
; 
010 
úû 
êë 
êë 
=ÚÞúû 
êë 
=úû 
êë 
Hãy viết chương trình thực hiện các thao tác sau: 
a. Cho A = [aij], B = [bij]. Tìm C = AÚB. 
b. Cho A = [aij], B = [bij]. Tìm C = AÙB. 
c. Cho A = [aik], B = [bkj]. Tìm C = AQB. 
d. Cho A = [aij] tìm Ar. 
16. Viết chương trình liệt kê các số tự nhiên k thỏa mãn những điều kiện dưới đây: 
a. k là số có từ 5-10 chữ số.
b. k là số nguyên tố. 
c. k là số thuận nghịch (k là số thuận nghịch nếu đọc xuôi hay đọc ngược các chữ số của 
k ta đều nhận được một số như nhau. Ví dụ số: 30303). 
d. Biểu diễn của k ở hệ cơ số b cũng là một số thuận nghịch. Ví dụ số k=30303 có biểu 
diễn ở hệ cơ số 8 là 73137 cũng là một số thuận nghịch. 
17. Hãy liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: 
a. K là số có từ 5 đến 10 chữ số; 
b. K là số nguyên tố; 
c. Đảo ngược thứ tự các chữ số của K cũng là một số nguyên tố; 
d. Tổng các chữ số của K là một số chia hết cho b. 
Các số tự nhiên K tìm được ghi lại trong file ketqua.out theo khuôn dạng như sau: 
· Dòng đầu tiên ghi lại số tự nhiên P là số các số tự nhiên K thỏa mãn đồng thời các điều 
kiện (a), (b), (c), và (d) . 
· Những dòng kế tiếp mỗi dòng ghi lại 5 số thỏa mãn các điều kiện trên, hai số khác nhau 
được viết cách nhau bởi một vài ký tự trống. 
Ví dụ dưới đây sẽ minh họa cho file ketqua.out của bài toán. 
Ketqua.out 
10 
101141 101293 101383 101653 102409 
102607 102643 102841 102913 102931 
18. Số điện thoại di động của một hãng viễn thông là một số có 10 chữ số dạng: 
091.M.XXX.XXX; trong đó N là các số từ 0 đến 9, M là các số từ 2 đến 9, X là các số từ 0 đến 
9. Hãy viết chương trình liệt kê tất cả các số điện thoại thỏa mãn đồng thời những điều kiện dưới 
đây. 
a) Tổng của bảy chữ số cuối cùng của mỗi số điện thoại là một số chia cho 10 dư 9. Ví dụ số 
091.9.104.401 có bảy số cuối cùng là 9.104.401 và tổng của bảy chữ số này là 19 
(19%10 = 9). 
b) Sáu số cuối dùng của mỗi số điện thoại lập thành một số thuận nghịch có sáu chữ số(một 
số được gọi là thuận nghịch nếu ta đọc từ trái sang phải hay từ phải sang trái các chữ số 
của số đó ta vẫn nhận được chính nó). Ví dụ số: 091.3.104401 có sáu số cuối cùng 
104401 là một số thuận nghịch. 
c) Sáu số cuối dùng của mỗi số điện thoại không chứa bất kỳ một số không nào. Ví dụ số 
091.9.122.221 có sáu số cuối cùng là 122.221 không chứa số không nào 
19. Cho số tự nhiên n. Hãy viết chương trình thực hiện những thao tác dưới đây: 
a. Biểu diễn n thành số ở hệ cơ số b (1< b <=16); 
b. Phân tích số n thành tích các thừa số nguyên tố; 
c. Liệt kê các số nguyên tố nhỏ hơn n; 
d. Liệt kê các số hoàn hảo nhỏ hơn n (một số được gọi là số hoàn hảo nếu tổng các ước số 
thực sự của nó kể cả số 1 bằng chính nó). 
20. Cho dãy gồm n số tự nhiên phân biệt a1, a2, .., an và số tự nhiên B. Hãy liệt kê tất cả các 
phần tử của tập ( ) { } 
þ ý ü 
î í ì 
n 
= Î = = å= 
n i i i D x x x a x B x i n 
1 2 , ,, : , 0,1 , 1,2,..., ; 
i 
1 
Dữ liệu vào cho bởi file data.in theo khuôn dạng như sau: 
· Dòng đầu tiên ghi lại hai số tự nhiên n và B. Hai số được viết cách nhau bởi một vài 
khoảng trống.
· Dòng kế tiếp ghi lại n số nguyên dương a1, a2,..,an. Hai số khác nhau được viết cách nhau 
bởi một vài kí tự trống. 
Kết quả ra ghi lại trong file ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên k là số phần tử của tập D. 
· k dòng tiếp theo mỗi dòng ghi lại một vector nhị phân x = (x1, x2 ,.., xn) là phần tử của D. 
Hai thành phần khác nhau của vector x được viết cách nhau bởi một vài khoảng trống. 
Ví dụ với n =7, B = 25, { a1, a2, a3, a4, a5, a6, a7} = {5, 10, 15, 20, 25, 30, 35} trong file data.in 
sẽ cho ta 7 phần tử của tập D tương ứng với 7 vector nhị phân độ dài n trong file ketqua.out dưới 
đây: 
Data.in 
7 25 
5 10 15 20 25 30 35 
Ketqua.Out 
3 
0 0 0 0 1 0 0 
1 0 0 1 0 0 0 
0 1 1 0 0 0 0
21. Cho dãy A[] gồm N số tự nhiên khác nhau và số tự nhiên K. Hãy viết chương trình liệt kê tất 
cả các dãy con của dãy số A[] sao cho tổng các phần tử trong dãy con đó đúng bằng K. Dữ liệu 
vào cho bởi file dayso.in theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên N là số các số của dãy số A[] và số tự nhiên K, hai số 
được viết cách nhau bởi một vài khoảng trống; 
· Dòng kế tiếp ghi lại N số của dãy số A[], hai số được viết cách nhau một vài khoảng 
trống. 
Các dãy con thoả mãn điều kiện tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số các dãy con có tổng các phần tử đúng bằng K tìm được; 
· Những dòng kế tiếp mỗi dòng ghi lại một dãy con. Hai phần tử khác nhau của dãy con 
được viết cách nhau bởi một vài khoảng trống. 
Ví dụ dưới đây sẽ minh hoạ cho file dayso.in và ketqua.out của bài toán. 
Dayso.in ketqua.out 
7 50 7 
5 10 15 20 25 30 35 20 30 
15 35 
5 20 25 
5 15 30 
5 10 35 
5 10 15 20 
5 10 15 20 
22. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống 
dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Cho file văn bản DATA.IN. Hãy 
tìm tập các từ và số lần xuất xuất hiện của mỗi từ trong tập văn bản DATA.IN. Kết quả tìm được 
ghi lại trong file Ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN; 
· K dòng kế tiếp, mỗi dòng ghi lại một từ và số lần xuất hiện của từ đó P(W) trong file 
DATA.IN. 
Ví dụ dưới đây sẽ minh họa cho file DATA.IN và Ketqua.out của bài toán. 
Data.in 
A AB AC AD AE A AB AE AF 
Ketqua.out 
6 
A 2 
AB 2 
AC 1 
AD 1 
AE 2 
AF 1
23. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống 
dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Tần xuất xuất hiện của từ W trong 
tập văn bản D, kí hiệu là P(W) được tính theo công thức: ( ) 
P ( W ) = N ( W ) 
; trong đó N(W) là số 
N D 
lần xuất hiện từ W trong D, N(D) là số từ của văn ban bản D. 
Cho file văn bản DATA.IN. Hãy tìm tập các từ và tần xuất xuất hiện của nó trong tập văn bản 
DATA.IN. Kết quả tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN; 
· K dòng kế tiếp, mỗi dòng ghi lại một từ W và tần xuất xuất hiện của từ đó P(W) trong file 
DATA1.IN. W và P(W) được viết cách nhau bởi một vài khoảng trống. 
Ví dụ dưới đây sẽ minh họa cho file DATA.IN và Ketqua.out của bài toán. 
Data.in 
A ABAC AD AE A 
AB AEAF 
Ketqua.out 
6 
A 0.22 
AB 0.22 
AC 0.11 
AD 0.11 
AE 0.22 
AF 0.11 
24. Cho ma trận vuông kích cỡ N´N (N£100) được tổ chức trong file matran.in theo khuôn dạng 
sau: 
· Dòng đầu tiên ghi lại số tự nhiên N là cấp của ma trận vuông; 
· N dòng kế tiếp mỗi dòng ghi lại một hàng của ma trận vuông, hai phần tử khác nhau của 
ma trận dược ghi cách nhau bởi một vài ký tự trống. 
Hãy viết chương trình tìm hàng, cột hoặc đường chéo chính của ma trận vuông sao cho tổng các 
phần tử theo hàng, cột hoặc đường chéo chính là lớn nhất. Ví dụ với ma trận được cho dưới đây 
sẽ cho ta kết quả là: Đường chéo chính 2, có tổng số các phần lớn nhất là 32. 
Matran.in 
51 
3 5 7 9 
2 1 3 4 5 
4 3 2 1 3 
6 9 3 2 1 
8 7 6 5 4
25. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; 
· Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải 
khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. 
Hãy viết chương trình liệt kê tất cả các số nguyên tố và số lần xuất hiện của mỗi số nguyên tố 
trong file songuyen.in. Các số nguyên tố tìm được ghi lại trong file nguyento.out theo khuôn 
dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số các số nguyên tố trong file songuyen.in 
· K dòng kế tiếp mỗi dòng ghi lại một số nguyên tố và số lần xuất hiện của nó trong file 
songuyen.in. 
Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. 
songuyen.in 
20 
10 13 17 21 34 54 37 41 53 81 
31 13 23 24 43 17 59 61 53 78 
nguyento.out 
10 
13 2 
17 2 
37 1 
41 1 
53 2 
31 1 
23 1 
43 1 
59 1 
61 1 
26. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; 
· Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải 
khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. 
Hãy viết chương trình liệt kê tất cả các số thuận nghịch và số lần xuất hiện của mỗi số thuận 
nghịch trong file songuyen.in (số thuận nghịch là số đọc từ trái sang phải hay từ phải sang trái 
các chữ số của số đó ta vẫn nhận được chính nó. Ví dụ số: 313). Các số thuận nghịch tìm được 
ghi lại trong file ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số các số thuận nghịch trong file songuyen.in 
· K dòng kế tiếp mỗi dòng ghi lại một số thuận nghịch và số lần xuất hiện của nó trong file 
songuyen.in. 
Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. 
songuyen.in 
20 
128 373 482 373 282 
171 747 373 512 648 
128 373 482 373 282 
171 747 373 512 648 
ketqua.out 
12 
373 6 
282 2 
171 2 
747 2
27. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; 
· Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải 
khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. 
Hãy viết chương trình liệt kê tất cả các số thuận nghịch và tần xuất xuất hiện của mỗi số thuận 
nghịch trong file songuyen.in (số thuận nghịch là số đọc từ trái sang phải hay từ phải sang trái 
các chữ số của số đó ta vẫn nhận được chính nó. Ví dụ số: 313). Các số thuận nghịch tìm được 
ghi lại trong file ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số các số thuận nghịch trong file songuyen.in 
· K dòng kế tiếp mỗi dòng ghi lại một số thuận nghịch và tần xuất xuất hiện của nó trong 
file songuyen.in. 
Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. 
songuyen.in 
10 
128 373 482 373 282 
171 747 373 512 648 
nguyento.out 
4 
373 0.3 
282 0.1 
171 0.1 
747 0.1 
28. Cho một hình chữ nhật gồm n ´ m hình vuông đơn vị (n, m được nhập từ bàn phím). Hãy liệt 
kê tất cả các đường đi từ đỉnh cuối của ô vuông cuối cùng phía bên trái đến đỉnh đầu của ô vuông 
trên cùng phía bên phải. Biết mỗi bước đi chỉ đuợc phép dịch chuyển sang bên phải (ký hiệu là 
bước 1) hoặc lên trên (ký hiệu là bước 0) theo các cạnh của hình vuông đơn vị. Các đường đi tìm 
được ghi lại trong file ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại một số tự nhiên là số các đường đi tìm được; 
· Những dòng kế tiếp mỗi dòng ghi lại một đường đi, bước dịch phải (1) và bước lên trên 
(0) của mỗi đường đi, hai bước khác nhau được ghi cách nhau bởi một vài ký tự trống. 
Ví dụ với n = 3, m = 2 như hình vuông dưới đây sẽ cho ta file ketqua.out tương ứng. 
Ketqua.Out 
10 
0 0 1 1 1 
0 1 0 1 1 
0 1 1 0 1 
0 1 1 1 0 
1 0 0 1 1 
1 0 1 0 1 
1 0 1 1 0 
1 1 0 0 1 
1 1 0 1 0 
1 1 1 0 0
29. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống 
dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Cho hai file văn bản DATA1.IN 
và DATA2.IN. Hãy tìm tập các từ xuất hiện trong file DATA1.IN nhưng không xuất hiện trong 
file DATA2.IN. Các từ tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN nhưng không 
xuất hiện trong file DATA2.IN; 
· K dòng kế tiếp, mỗi dòng ghi lại một từ xuất hiện trong file DATA1.IN nhưng không 
xuất hiện trong file DATA2.IN. 
Ví dụ dưới đây sẽ minh họa cho các file dữ liệu vào và file kết quả của bài toán. 
Data1.in 
AB AC AD AE AF AG AH 
AB AC AD AE AF AG AH 
Data2.in 
AB AC AD AI CA CB 
CD CE CF CG 
Ketqua.out 
4 
AE 
AF 
AG 
AH 
30. Số điện thoại di động của một hãng viễn thông được đánh số theo qui cách 091N. 
XXX.XXX. Trong đó, N là số từ 2 đến 9, X là một số từ 0 đến 9. Ta định nghĩa các loại số điện 
thoại sau: 
· Số điện thoại loại I (Loại I): Là những số mà sáu số cuối cùng của nó đọc xuôi từ trái 
sang phải hay đọc nguợc từ phải sang trái ta đều nhận được một số có sáu chữ số giống 
nhau. Ví dụ số: 0913.558855. 
· Số điện thoại loại II (Loại II): Là những số điện thoại Loại I mà tổng sáu chữ số cuối 
cùng của nó là một số chia hết cho 10 . Ví dụ số: 0913.104.401 (1+0+4+4+0+1=10). 
· Số điện thoại loại III (Loại III): Là những số điện thoại Loại II mà sáu chữ số cuối cùng 
của nó không chứa bất kỳ một số 0 nào. Ví dụ số: 0913. 122.2211. 
Hãy viết chương trình thực hiện: 
· Liệt kê tất cả các số điện thoại Loại I không chứa các số điện thoại Loại II. 
· Liệt kê tất cả các số điện thoại Loại II không chứa các số điện thoại Loại III. 
· Liệt kê tất cả các số điện thoại Loại III.
å= 
31. Viết chương trình tìm giá trị tối ưu fopt = f(x1,x2,..,xn) và phương án tối ưu xopt = (x1, x2,..,xn) 
n 
của hàm mục tiêu f x x x = 
c x 
n i i 1 2 ( , ,.., ) ; Trong đó 
i 
1 
n 
( ) ( ) { } 
þ ý ü 
î í ì 
Î £ = Î å= 
n n i i j x x x D x x x a x b x 
, ,.., , ,.., : ; 0,1 ; 1 2 1 2 ; cj, aj, b là các số nguyên dương 
i 
1 
(j=1,2,..,n). 
Dữ liệu vào n, b, cj, aj được cho trong file Data.in theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại hai số tự nhiên n và b, hai số được viết cách nhau bởi một hoặc vài 
kí tự trống. 
· Dòng kế tiếp ghi lại n số nguyên dương c1, c2, .., cn. ; các số được viết cách nhau bởi một 
hoặc vài kí tự trống. 
· Dòng cuối cùng ghi lại n số nguyên dương a1, a2,..,an; các số được viết cách nhau bởi một 
hoặc vài kí tự trống. 
Giá trị tối ưu và phương án tối ưu tìm được ghi lại trong file Data.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại giá trị tối ưu fopt = f(x1,x2,..,xn) của hàm mục tiêu. 
· Dòng kế tiếp ghi lại n thành phần của phương án tối ưu xopt = (x1, x2,..,xn). Mỗi thành 
phần được viết cách nhau một vài kí tự trống. 
Ví dụ dưới đây sẽ minh họa cho file Data.in và file Data.out của bài toán 
Data.in Data.out 
4 8 14 
8 5 3 1 1 1 0 1 
4 3 2 1
32. Cho đồ thị vô hướng G1 =<V1,E1>, G2 =<V2,E2>, G3 =<V3,E3>. Trong đó, G1 được biểu 
diễn dưới dạng ma trận kề, G2 được biểu diễn dưới dạng danh sách cạnh, G3 được biểu diễn 
dưới dạng danh sách kề. Mỗi đồ thị được được tổ chức trong các file dữ liệu theo khuôn dạng 
sau: 
· Đồ thị G1: Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị; n dòng kế tiếp ghi lại 
ma trận kề của đồ thị, hai phần tử khác nhau của ma trận kề được viết phân biệt với nhau 
bằng một hoặc vài khoảng trống. 
· Đồ thị G2: Dòng đầu tiên ghi lại hai số tự nhiên n và m tương ứng là số đỉnh và số cạnh 
của đồ thị. Hai số được viết cách nhau bởi một hoặc vài kí tự trống; m dòng kế tiếp mỗi 
dòng ghi lại một cạnh của đồ thị. Đỉnh đầu và đỉnh cuối của mỗi cạnh được viết phân biệt 
với nhau bằng một hoặc vài kí tự trống. 
· Đồ thị G3: Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị; n dòng kế tiếp mỗi 
dòng ghi lại danh sách kề của đỉnh tương ứng. Hai đỉnh trong cùng một danh sách kề 
được phân biệt với nhau bằng một hoặc vài kí tự trống. 
Hãy viết chương trình thực hiện những công việc sau: 
a. Cho đồ thị G1 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ 
thị G2. 
b. Cho đồ thị G1 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ 
thị G3. 
c. Cho đồ thị G2 bất kì. Hãy chuyển đổi đồ thị G2 thành đồ thị được biểu diễn dưới dạng đồ 
thị G1. 
d. Cho đồ thị G2 bất kì. Hãy chuyển đổi đồ thị G2 thành đồ thị được biểu diễn dưới dạng đồ 
thị G3. 
e. Cho đồ thị G3 bất kì. Hãy chuyển đổi đồ thị G3 thành đồ thị được biểu diễn dưới dạng đồ 
thị G1. 
f. Cho đồ thị G3 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ 
thị G2. 
Ví dụ dưới đây sẽ minh họa cho biểu diễn của đồ thị G1, G2, G3. 
<Đồ thị G1> <Đồ thị G2> <Đồ thị G3> 
5 5 4 5 
0 1 1 0 0 1 2 2 3 
1 0 0 1 0 1 3 1 4 
1 0 0 0 1 2 4 1 5 
0 1 0 0 0 3 5 2 
0 0 1 0 0 3
33. Cho đồ thị vô hướng G =<V,E>, trong đó V là tập đỉnh, E là tập cạnh. Ta gọi cạnh eÎE là 
cầu nếu khi loại bỏ nó ra khỏi đồ thị làm tăng số thành phần liên thông của đồ thị. Hãy viết 
chương trình tìm tất cả các cạnh cầu của đồ thị. Dữ liệu vào cho bởi file Dothi.in theo khuôn 
dạng sau: 
· Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị. 
· n dòng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau của ma trận kề được 
viết cách nhau bởi một hoặc vài kí tự trống. 
Kết quả ra ghi lại trong file Canhcau.out theo khuôn dạng sau: 
· Dòng đầu tiên ghi lại số các cạnh cầu mà bạn tìm được. 
· Những dòng kế tiếp mỗi dòng ghi lại một cạnh cầu, đỉnh đầu và đỉnh cuối của cạnh được 
viết cách nhau bởi một vài kí tự trống. 
Ví dụ dưới đây sẽ minh họa cho file Dothi.in và Canhcau.out. 
Dothi.in Canhcau.out 
5 4 
0 1 1 0 0 1 2 
1 0 0 1 0 1 3 
1 0 0 0 1 2 4 
0 1 0 0 0 3 5 
0 0 1 0 0

More Related Content

What's hot (16)

Cac van de co so kh may tinh
Cac van de co so kh may tinhCac van de co so kh may tinh
Cac van de co so kh may tinh
 
Bai 11 kieu mang (tiet 1)
Bai 11 kieu mang (tiet 1)Bai 11 kieu mang (tiet 1)
Bai 11 kieu mang (tiet 1)
 
TinHoc_tuyentapde_nk
TinHoc_tuyentapde_nkTinHoc_tuyentapde_nk
TinHoc_tuyentapde_nk
 
Tut5 solution
Tut5 solutionTut5 solution
Tut5 solution
 
Thuat Toan
Thuat ToanThuat Toan
Thuat Toan
 
Bai.11.tot
Bai.11.totBai.11.tot
Bai.11.tot
 
Bai tap-pascal-lop-11
Bai tap-pascal-lop-11Bai tap-pascal-lop-11
Bai tap-pascal-lop-11
 
Go congthuctoanhoc
Go congthuctoanhocGo congthuctoanhoc
Go congthuctoanhoc
 
Lab4
Lab4Lab4
Lab4
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 
Bai tap pascal tong hop
Bai tap pascal tong hopBai tap pascal tong hop
Bai tap pascal tong hop
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Tut6
Tut6Tut6
Tut6
 
Bai tap mau pascal
Bai tap mau pascalBai tap mau pascal
Bai tap mau pascal
 
Java exercises part 2
Java exercises part 2Java exercises part 2
Java exercises part 2
 

Similar to Bài tập ôn lập trình

Similar to Bài tập ôn lập trình (20)

Bai tap java
Bai tap javaBai tap java
Bai tap java
 
Tai lieu lap trinh vc++ day du
Tai lieu lap trinh vc++ day duTai lieu lap trinh vc++ day du
Tai lieu lap trinh vc++ day du
 
Chuyen doi he so
Chuyen doi he soChuyen doi he so
Chuyen doi he so
 
Chương Trình Con
Chương Trình Con Chương Trình Con
Chương Trình Con
 
Ontap ltc
Ontap ltcOntap ltc
Ontap ltc
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Sang tao4
Sang tao4Sang tao4
Sang tao4
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hoc
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Session 4
Session 4Session 4
Session 4
 
Bài tập CTDL và GT 8
Bài tập CTDL và GT 8Bài tập CTDL và GT 8
Bài tập CTDL và GT 8
 
344444
344444344444
344444
 
Tut6 solution
Tut6 solutionTut6 solution
Tut6 solution
 
Bai de quy
Bai de quyBai de quy
Bai de quy
 
Bai tap lam quen java (1)
Bai tap lam quen java (1)Bai tap lam quen java (1)
Bai tap lam quen java (1)
 
Bai tap lam quen java
Bai tap lam quen javaBai tap lam quen java
Bai tap lam quen java
 
Fortran cơ sở
Fortran cơ sởFortran cơ sở
Fortran cơ sở
 

More from Thai Hoc Vu (15)

Ngôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đạiNgôn ngữ tiếng nhật hiện đại
Ngôn ngữ tiếng nhật hiện đại
 
Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1Giáo trình uốn tóc phần 1
Giáo trình uốn tóc phần 1
 
Danh mục cable
Danh mục cableDanh mục cable
Danh mục cable
 
OOP-9
OOP-9OOP-9
OOP-9
 
Oop 8
Oop 8Oop 8
Oop 8
 
Oop 7
Oop 7Oop 7
Oop 7
 
Oop 5
Oop 5Oop 5
Oop 5
 
Oop 4
Oop 4Oop 4
Oop 4
 
Oop 3
Oop 3Oop 3
Oop 3
 
Oop 2
Oop 2Oop 2
Oop 2
 
Oop 1
Oop 1Oop 1
Oop 1
 
Oop 0
Oop 0Oop 0
Oop 0
 
Oop 13
Oop 13Oop 13
Oop 13
 
Oop 11
Oop 11Oop 11
Oop 11
 
Oop 6
Oop 6Oop 6
Oop 6
 

Recently uploaded

Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayLcTh15
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...Nguyen Thanh Tu Collection
 
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...Nguyen Thanh Tu Collection
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...Nguyen Thanh Tu Collection
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......thoa051989
 
Báo cáo thực hành Quản lý kinh tế dược.pptx
Báo cáo thực hành Quản lý kinh tế dược.pptxBáo cáo thực hành Quản lý kinh tế dược.pptx
Báo cáo thực hành Quản lý kinh tế dược.pptxhoangvubaongoc112011
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
CH glucid university of Pham Ngoc Thach- v7.pdf
CH glucid university of Pham Ngoc Thach- v7.pdfCH glucid university of Pham Ngoc Thach- v7.pdf
CH glucid university of Pham Ngoc Thach- v7.pdfSuperJudy1
 
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTrangL188166
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...Nguyen Thanh Tu Collection
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx7E26NguynThThyLinh
 
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách Khoa
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách KhoaTài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách Khoa
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách KhoaKhiNguynCngtyTNHH
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...Nguyen Thanh Tu Collection
 
trò chơi về môn học tư tưởng hồ chí minh
trò chơi về môn học tư tưởng hồ chí minhtrò chơi về môn học tư tưởng hồ chí minh
trò chơi về môn học tư tưởng hồ chí minhNguynHuTh6
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfHngNguyn271079
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hay
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 TIẾNG ANH I-LEARN SMART START LỚP 3, 4 NĂM HỌC 2023-...
 
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...
BỘ ĐỀ CHÍNH THỨC + TÁCH ĐỀ + ĐỀ LUYỆN THI VÀO LỚP 10 CHUYÊN TOÁN CÁC TỈNH NĂM...
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CÔNG NGHỆ 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN ...
 
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......
 
Báo cáo thực hành Quản lý kinh tế dược.pptx
Báo cáo thực hành Quản lý kinh tế dược.pptxBáo cáo thực hành Quản lý kinh tế dược.pptx
Báo cáo thực hành Quản lý kinh tế dược.pptx
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
CH glucid university of Pham Ngoc Thach- v7.pdf
CH glucid university of Pham Ngoc Thach- v7.pdfCH glucid university of Pham Ngoc Thach- v7.pdf
CH glucid university of Pham Ngoc Thach- v7.pdf
 
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 CÁNH DIỀU - CẢ NĂM THEO CÔNG VĂN 5512 (2 CỘT)...
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
 
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách Khoa
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách KhoaTài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách Khoa
Tài liệu kỹ thuật điều hòa Panasonic - Điện lạnh Bách Khoa
 
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY TOÁN 8 KẾT NỐI TRI THỨC - CẢ NĂM THEO CÔNG VĂN 5512 ...
 
trò chơi về môn học tư tưởng hồ chí minh
trò chơi về môn học tư tưởng hồ chí minhtrò chơi về môn học tư tưởng hồ chí minh
trò chơi về môn học tư tưởng hồ chí minh
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Bài tập ôn lập trình

  • 1. 1. TÌM KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 2. CHUYỂN ĐỔI CHƯƠNG TRÌNH 1. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("n Buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j; for(i=0; i<n-1; i++){ for(j=i+1; j<n; j++){ if(A[i]>A[j]){ A[i]=A[i] + A[j]; A[j]=A[i]-A[j]; A[i]=A[i] – A[j]; } } Result(A,n); } } #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("n Buoc %d:",count); int i=0; while (i<n) { printf("%4d", A[i]); i++; } } void main(void){ int i=0, j=i+1; while (i<n-1) { while (j<n) { while(A[i]>A[j]) { A[i]=A[i] + A[j]; A[j]=A[i]-A[j]; A[i]=A[i]-A[j]; break; } j++; Result(A,n); } i++; } getch(); }
  • 2. 2. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("n Buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j, temp; for(i=1; i<n; i++){ temp = A[i]; for(j=i-1; j>=0 && temp < A[j]; j--){ A[j+1]=A[j]; } A[j+1] = temp;Result(A,n); } getch(); }
  • 3. 3. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("n Ket qua buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j, temp; for(i=1; i<n; i++){ for(j=n-1; j>=i; j--){ if (A[j-1] > A[j]){ temp = A[j-1]; A[j-1] = A[j]; A[j] = temp; } } Result(A,n); } getch(); } 4. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây: #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0}, n=5, OK=1, count=0; void Result(void){ printf("n Ket qua buoc %3d:",++count); for (int i=0; i<n; i++) printf("%3d",B[i]); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i--) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); }
  • 4. 5. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0}, n=5,k=3, OK=1, count=0; void Inketqua(void){ printf("n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) if(B[i]) s++; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i--) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1 (); } while(OK); } 6. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("n Ket qua %3d:",++count); for(int i=0; i<n; i++) if(B[i]) printf("%3d",A[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i--) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); }
  • 5. 7. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i--) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); } 8. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=40, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s<=k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i--) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); }
  • 6. 9. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> #include <string.h> char str[255]="000 001 010 011 100 101 110 111 101 110"; void main(void){ clrscr(); int n, m=0, k=0;n = strlen(str);char s[32]; for(int i=0; i<=n; i++){ switch(str[i]){ case ' ' : case 't': case 'n': case 'r': case '0': if (k>0) { s[k]='0';m++;k=0; printf("n Kết quả bước %d: %s",m,s); } break; default: s[k++]=str[i]; break; } } } 10. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 11. #include <stdio.h> #include <conio.h> #include <math.h> int nguyen_to(unsigned long int n){ unisened long int i, k=sqrt(n); for(i=2; i<=k; i++) if(n%i==0) return(0); return(1); } void main(void){ unsigned long int n =2868336900; int k=0,i=2, OK=1; do { if(nguyen_to(n)) { printf("n Kết quả bước:%d:%ld",++k,n); OK=0;} else if (n%i==0){printf("n Kết quả bước:%d: %d",++k,i); n = n/i;} else i++; } while(OK); a) Chứng minh rằng một chương trình được thể hiện bằng tất cả các cấu trúc lệnh (while, do..while, for, if..else, switch) đều có thể chuyển đổi thành một chương trình mới cho lại kết quả giống như chương trình cũ nhưng chỉ cần dùng tối thiểu cấu trúc lệnh lặp while và một số biến phụ. b) Áp dụng kết quả trên chuyển đổi các chương trình từ bài 1 đến bài 10 sử dụng tối thiểu cấu trúc lệnh lặp while và một số biến phụ. }
  • 7. CHỦ ĐỀ 2-LẬP TRÌNH CHO CÁC BÀI TOÁN DƯỚI ĐÂY 1. Một xâu nhị phân được gọi là xâu thuận nghịch độc là xâu đọc từ trái sang phải hay từ phải sang trái ta vẫn nhận được chính xâu đó (ví dụ xâu: 1010.0101). Hãy duyệt tất cả các xâu nhị phân thuận nghịch độc độ dài n. 2. Viết chương trình liệt kê tất cả các xâu nhị phân độ dài n. 3. Viết chương trình liệt kê tất cả các tập con k phần tử của 1, 2, ..,n (k≤n). 4. Viết chương trình liệt kê tất cả các hoán vị của 1, 2, .., n. 5. Viết chương trình liệt kê tất cả các phần tử của tập D { x x x x { } i n} n i = ( , ,.., ) : Î 0,1 ,1 £ £ 1 2 6. Viết chương trình liệt kê tất cả các phần tử của tập { } þ ý ü î í ì n = å = £ Î £ £ Î + D ( x , x ,.., x ) : a x b , x 0,1 ,1 i n , a , b Z n i i i i i 1 1 2 7. Viết chương trình liệt kê tất cả các phần tử của tập { } þ ý ü î í ì n = å = = Î £ £ Î + D ( x , x ,.., x ) : a x b , x 0,1 ,1 i n , a , b Z n i i i i i 1 1 2 8. Cho số tự nhiên n. Hãy viết chương trình thực hiện những công việc sau: a. Phân tích n thành thừa số nguyên tố. b. Đổi số tự nhiên n thành số ở hệ cơ số b bất kì 1 <b≤36. c. Liệt kê tất cả các số nguyên tố có tổng các phần tử là S cho trước. d. Liệt kê tất cả các cặp số p, 4p + 1 là nguyên tố nhỏ hơn n. e. Liệt kê tất cả các cặp số p, 2p+1 là nguyên tố nhỏ hơn n. f. Liệt kê tất cả các số Fibonacci là nguyên tố nhỏ hơn n. g. Liệt kê tất cả các số hoàn thiện nhỏ hơn n. h. Liệt kê tất cả các các cặp số hữu nghị (a, b) nhỏ hơn n. 9. Cho số tự nhiên n. Hãy viết chương trình thực hiện những thao tác sau: a. Liệt kê tất cả các xâu nhị phân độ dài n (sinh kế tiếp). b. Liệt kê tất cả các xâu nhị phân thuận nghịch độc độ dài n(sinh kế tiếp). c. Liệt kê tất cả các tập con k phần tử (k≤n) của 1, 2, 3,.., n(sinh kế tiếp). d. Liệt kê tất cả các hoán vị của 1, 2, 3, .., n. (sinh kế tiếp) e. Liệt kê tất cả các cách chia số n thành tổng các số tự nhiên nhỏ hơn n. (sinh kế tiếp) f. Liệt kê tất cả các xâu nhị phân độ dài n (quay lui). g. Liệt kê tất cả các xâu nhị phân thuận nghịch độc độ dài n(quay lui). h. Liệt kê tất cả các tập con k phần tử (k≤n) của 1, 2, 3,.., n(quay lui). i. Liệt kê tất cả các hoán vị của 1, 2, 3, .., n. (quay lui) j. Liệt kê tất cả các cách chia số n thành tổng các số tự nhiên nhỏ hơn n. (quay lui) k. Liệt kê tất cả các cách đặt n quân hậu trên bàn cờ kích cỡ n×n sao cho chúng không ăn được lẫn nhau.
  • 8. 10. Cho hai đa thức Pn(x) và Qm(x). Hãy viết chương trình thực hiện những thao tác sau: a. Tạo lập hai đa thức (nhập hệ số cho đa thức từ bàn phím hoặc file) a. Tính Pn(x0) và Qm(x0) b. Tìm đạo hàm cấp l ≤n của đa thức. c. Tìm Pn(x) + Qm(x) d. Tìm Pn(x) - Qm(x) e. Tìm Pn(x) / Qm(x) và đa thức dư 11. Cho hai ma trận vuông A cấp n. Hãy viết chương trình thực hiện các thao tác sau: a. Tìm hàng, cột hoặc đường chéo có tổng các phần tử lớn nhất. b. Tìm ma trận chuyển vị của A c. Tìm định thức của A d. Tìm ma trận nghịch đảo của A e. Giải hệ Phương trình tuyến tính thuần nhất n ẩn AX = B bằng phương pháp Grame 12. Cho một buffer kí tự gồm n dòng. Hãy viết chương trình thực hiện các thao tác sau: a. Tạo lập n dòng văn bản cho buffer. b. Đếm số từ trong Buffer. c. Tìm tần xuất xuất hiện từ X bất kì trong buffer. d. Mã hóa buffer bằng kĩ thuật Parity Bits e. Giải mã buffer được mã hóa bằng kĩ thuật parity. f. Thay thế từ X bằng từ Y. 13. Hãy viết chương trình thực hiện những thao tác dưới đây: a. Liệt kê các phần tử của tập þ ý ü î í ì÷ø æ = = = å= çè n ö n j j D x x x x a x b 1 2 , ,, : ; trong đó a1, a2,.., an , b i 1 là các số nguyên dương, xiÎ{0, 1} j =1, 2, ..,n. b. Liệt kê các phần tử của tập þ ý ü î í ì ö çè 1 2 , ,, : ; trong đó a1, a2,.., an , ÷ø = = å= æ k = k j j D x x x x a x b i 1 b là các số nguyên dương, xiÎ{0, 1} j =1, 2, ..,n. c. Tính giá trị nhỏ nhất của hàm mục tiêu å= f x x x = c x n i i n 1 2 ( , ,.., ) trong đó i 1 ( ) { } þ ý ü î í ì Î Î £ Î = å= + n x x , x ,.., x x , x ,.., x : a x b ; x 0,1 , a Z 1 2 n 1 2 n i i i i i 1
  • 9. d. Tính giá trị nhỏ nhất của hàm mục tiêu f (x = x1, x2 ,.., xn ) = C[x1, x2 ] + C[x1, x2 ] +.. + C[xn-1, xn ] + C[xn , x1 ] ; trong đó = ( )ÎP n x 1, x , x ,.., x 1 1 2 là tập các hoán vị của 1, 2, .., n. C[i,j] ÎZ+ (i, j =1, 2,..,n). 15 . Ma trận nhị phân là ma trận mà các phần tử của nó hoặc bằng 0 hoặc bằng 1. Cho A = [aij], B = [bij] là các ma trận nhị phân cấp m × n (i =1, 2,..,m. j= 1, 2, ..,n). Ta định nghĩa các phép hợp, giao, nhân logic và phép lũy thừa cho A và B như sau: · Hợp của A và B, được kí hiệu là AÚB là ma trận nhị phân cấp m×n với phần tử ở vị trí (i, j) là aij Úbij. · Giao của A và B, được kí hiệu là AÙB là ma trận nhị phân cấp m×n với phần tử ở vị trí (i,j) là aijÙbij. · Tích boolean của A và B, được kí hiệu là AQB là ma trận nhị phân cấp m×n với phần tử ở vị trí (i,j) là cij = (ai1Ùb1j) Ú (ai2Ùb2j)Ú..Ú( (aikÙbkj). · Nếu A là một ma trận vuông nhị phân cấp n và r là một số nguyên dương. Lũy thừa Boolean bậc r của A được kí hiệu là Ar = AQAQ..QA (r lần). ù ú ú ú 10 A B AB 110 011 011 û é ÞQ= ê ê ê ë ù ú ú ú û é = ê ê ê ù ú ú ú ë û ê ê ê 110 110 01 ; 10 101 111 011 , 010 000 110 é =Ùúû ù ABABAB ; 010 úû êë êë =ÚÞúû êë =úû êë Hãy viết chương trình thực hiện các thao tác sau: a. Cho A = [aij], B = [bij]. Tìm C = AÚB. b. Cho A = [aij], B = [bij]. Tìm C = AÙB. c. Cho A = [aik], B = [bkj]. Tìm C = AQB. d. Cho A = [aij] tìm Ar. 16. Viết chương trình liệt kê các số tự nhiên k thỏa mãn những điều kiện dưới đây: a. k là số có từ 5-10 chữ số.
  • 10. b. k là số nguyên tố. c. k là số thuận nghịch (k là số thuận nghịch nếu đọc xuôi hay đọc ngược các chữ số của k ta đều nhận được một số như nhau. Ví dụ số: 30303). d. Biểu diễn của k ở hệ cơ số b cũng là một số thuận nghịch. Ví dụ số k=30303 có biểu diễn ở hệ cơ số 8 là 73137 cũng là một số thuận nghịch. 17. Hãy liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: a. K là số có từ 5 đến 10 chữ số; b. K là số nguyên tố; c. Đảo ngược thứ tự các chữ số của K cũng là một số nguyên tố; d. Tổng các chữ số của K là một số chia hết cho b. Các số tự nhiên K tìm được ghi lại trong file ketqua.out theo khuôn dạng như sau: · Dòng đầu tiên ghi lại số tự nhiên P là số các số tự nhiên K thỏa mãn đồng thời các điều kiện (a), (b), (c), và (d) . · Những dòng kế tiếp mỗi dòng ghi lại 5 số thỏa mãn các điều kiện trên, hai số khác nhau được viết cách nhau bởi một vài ký tự trống. Ví dụ dưới đây sẽ minh họa cho file ketqua.out của bài toán. Ketqua.out 10 101141 101293 101383 101653 102409 102607 102643 102841 102913 102931 18. Số điện thoại di động của một hãng viễn thông là một số có 10 chữ số dạng: 091.M.XXX.XXX; trong đó N là các số từ 0 đến 9, M là các số từ 2 đến 9, X là các số từ 0 đến 9. Hãy viết chương trình liệt kê tất cả các số điện thoại thỏa mãn đồng thời những điều kiện dưới đây. a) Tổng của bảy chữ số cuối cùng của mỗi số điện thoại là một số chia cho 10 dư 9. Ví dụ số 091.9.104.401 có bảy số cuối cùng là 9.104.401 và tổng của bảy chữ số này là 19 (19%10 = 9). b) Sáu số cuối dùng của mỗi số điện thoại lập thành một số thuận nghịch có sáu chữ số(một số được gọi là thuận nghịch nếu ta đọc từ trái sang phải hay từ phải sang trái các chữ số của số đó ta vẫn nhận được chính nó). Ví dụ số: 091.3.104401 có sáu số cuối cùng 104401 là một số thuận nghịch. c) Sáu số cuối dùng của mỗi số điện thoại không chứa bất kỳ một số không nào. Ví dụ số 091.9.122.221 có sáu số cuối cùng là 122.221 không chứa số không nào 19. Cho số tự nhiên n. Hãy viết chương trình thực hiện những thao tác dưới đây: a. Biểu diễn n thành số ở hệ cơ số b (1< b <=16); b. Phân tích số n thành tích các thừa số nguyên tố; c. Liệt kê các số nguyên tố nhỏ hơn n; d. Liệt kê các số hoàn hảo nhỏ hơn n (một số được gọi là số hoàn hảo nếu tổng các ước số thực sự của nó kể cả số 1 bằng chính nó). 20. Cho dãy gồm n số tự nhiên phân biệt a1, a2, .., an và số tự nhiên B. Hãy liệt kê tất cả các phần tử của tập ( ) { } þ ý ü î í ì n = Î = = å= n i i i D x x x a x B x i n 1 2 , ,, : , 0,1 , 1,2,..., ; i 1 Dữ liệu vào cho bởi file data.in theo khuôn dạng như sau: · Dòng đầu tiên ghi lại hai số tự nhiên n và B. Hai số được viết cách nhau bởi một vài khoảng trống.
  • 11. · Dòng kế tiếp ghi lại n số nguyên dương a1, a2,..,an. Hai số khác nhau được viết cách nhau bởi một vài kí tự trống. Kết quả ra ghi lại trong file ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên k là số phần tử của tập D. · k dòng tiếp theo mỗi dòng ghi lại một vector nhị phân x = (x1, x2 ,.., xn) là phần tử của D. Hai thành phần khác nhau của vector x được viết cách nhau bởi một vài khoảng trống. Ví dụ với n =7, B = 25, { a1, a2, a3, a4, a5, a6, a7} = {5, 10, 15, 20, 25, 30, 35} trong file data.in sẽ cho ta 7 phần tử của tập D tương ứng với 7 vector nhị phân độ dài n trong file ketqua.out dưới đây: Data.in 7 25 5 10 15 20 25 30 35 Ketqua.Out 3 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0
  • 12. 21. Cho dãy A[] gồm N số tự nhiên khác nhau và số tự nhiên K. Hãy viết chương trình liệt kê tất cả các dãy con của dãy số A[] sao cho tổng các phần tử trong dãy con đó đúng bằng K. Dữ liệu vào cho bởi file dayso.in theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên N là số các số của dãy số A[] và số tự nhiên K, hai số được viết cách nhau bởi một vài khoảng trống; · Dòng kế tiếp ghi lại N số của dãy số A[], hai số được viết cách nhau một vài khoảng trống. Các dãy con thoả mãn điều kiện tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số các dãy con có tổng các phần tử đúng bằng K tìm được; · Những dòng kế tiếp mỗi dòng ghi lại một dãy con. Hai phần tử khác nhau của dãy con được viết cách nhau bởi một vài khoảng trống. Ví dụ dưới đây sẽ minh hoạ cho file dayso.in và ketqua.out của bài toán. Dayso.in ketqua.out 7 50 7 5 10 15 20 25 30 35 20 30 15 35 5 20 25 5 15 30 5 10 35 5 10 15 20 5 10 15 20 22. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Cho file văn bản DATA.IN. Hãy tìm tập các từ và số lần xuất xuất hiện của mỗi từ trong tập văn bản DATA.IN. Kết quả tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN; · K dòng kế tiếp, mỗi dòng ghi lại một từ và số lần xuất hiện của từ đó P(W) trong file DATA.IN. Ví dụ dưới đây sẽ minh họa cho file DATA.IN và Ketqua.out của bài toán. Data.in A AB AC AD AE A AB AE AF Ketqua.out 6 A 2 AB 2 AC 1 AD 1 AE 2 AF 1
  • 13. 23. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Tần xuất xuất hiện của từ W trong tập văn bản D, kí hiệu là P(W) được tính theo công thức: ( ) P ( W ) = N ( W ) ; trong đó N(W) là số N D lần xuất hiện từ W trong D, N(D) là số từ của văn ban bản D. Cho file văn bản DATA.IN. Hãy tìm tập các từ và tần xuất xuất hiện của nó trong tập văn bản DATA.IN. Kết quả tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN; · K dòng kế tiếp, mỗi dòng ghi lại một từ W và tần xuất xuất hiện của từ đó P(W) trong file DATA1.IN. W và P(W) được viết cách nhau bởi một vài khoảng trống. Ví dụ dưới đây sẽ minh họa cho file DATA.IN và Ketqua.out của bài toán. Data.in A ABAC AD AE A AB AEAF Ketqua.out 6 A 0.22 AB 0.22 AC 0.11 AD 0.11 AE 0.22 AF 0.11 24. Cho ma trận vuông kích cỡ N´N (N£100) được tổ chức trong file matran.in theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên N là cấp của ma trận vuông; · N dòng kế tiếp mỗi dòng ghi lại một hàng của ma trận vuông, hai phần tử khác nhau của ma trận dược ghi cách nhau bởi một vài ký tự trống. Hãy viết chương trình tìm hàng, cột hoặc đường chéo chính của ma trận vuông sao cho tổng các phần tử theo hàng, cột hoặc đường chéo chính là lớn nhất. Ví dụ với ma trận được cho dưới đây sẽ cho ta kết quả là: Đường chéo chính 2, có tổng số các phần lớn nhất là 32. Matran.in 51 3 5 7 9 2 1 3 4 5 4 3 2 1 3 6 9 3 2 1 8 7 6 5 4
  • 14. 25. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; · Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. Hãy viết chương trình liệt kê tất cả các số nguyên tố và số lần xuất hiện của mỗi số nguyên tố trong file songuyen.in. Các số nguyên tố tìm được ghi lại trong file nguyento.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số các số nguyên tố trong file songuyen.in · K dòng kế tiếp mỗi dòng ghi lại một số nguyên tố và số lần xuất hiện của nó trong file songuyen.in. Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. songuyen.in 20 10 13 17 21 34 54 37 41 53 81 31 13 23 24 43 17 59 61 53 78 nguyento.out 10 13 2 17 2 37 1 41 1 53 2 31 1 23 1 43 1 59 1 61 1 26. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; · Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. Hãy viết chương trình liệt kê tất cả các số thuận nghịch và số lần xuất hiện của mỗi số thuận nghịch trong file songuyen.in (số thuận nghịch là số đọc từ trái sang phải hay từ phải sang trái các chữ số của số đó ta vẫn nhận được chính nó. Ví dụ số: 313). Các số thuận nghịch tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số các số thuận nghịch trong file songuyen.in · K dòng kế tiếp mỗi dòng ghi lại một số thuận nghịch và số lần xuất hiện của nó trong file songuyen.in. Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. songuyen.in 20 128 373 482 373 282 171 747 373 512 648 128 373 482 373 282 171 747 373 512 648 ketqua.out 12 373 6 282 2 171 2 747 2
  • 15. 27. Cho file dữ liệu songuyen.in được tổ chức theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên N là số các số nguyên trong file; · Những dòng kế tiếp ghi lại N số nguyên (các số nguyên trong file không nhất thiết phải khác nhau ), các số được ghi cách nhau bởi một vài ký tự trống. Hãy viết chương trình liệt kê tất cả các số thuận nghịch và tần xuất xuất hiện của mỗi số thuận nghịch trong file songuyen.in (số thuận nghịch là số đọc từ trái sang phải hay từ phải sang trái các chữ số của số đó ta vẫn nhận được chính nó. Ví dụ số: 313). Các số thuận nghịch tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số các số thuận nghịch trong file songuyen.in · K dòng kế tiếp mỗi dòng ghi lại một số thuận nghịch và tần xuất xuất hiện của nó trong file songuyen.in. Ví dụ dưới đây sẽ minh họa cho khuôn dạng file dữ liệu vào và file kết quả của bài toán. songuyen.in 10 128 373 482 373 282 171 747 373 512 648 nguyento.out 4 373 0.3 282 0.1 171 0.1 747 0.1 28. Cho một hình chữ nhật gồm n ´ m hình vuông đơn vị (n, m được nhập từ bàn phím). Hãy liệt kê tất cả các đường đi từ đỉnh cuối của ô vuông cuối cùng phía bên trái đến đỉnh đầu của ô vuông trên cùng phía bên phải. Biết mỗi bước đi chỉ đuợc phép dịch chuyển sang bên phải (ký hiệu là bước 1) hoặc lên trên (ký hiệu là bước 0) theo các cạnh của hình vuông đơn vị. Các đường đi tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại một số tự nhiên là số các đường đi tìm được; · Những dòng kế tiếp mỗi dòng ghi lại một đường đi, bước dịch phải (1) và bước lên trên (0) của mỗi đường đi, hai bước khác nhau được ghi cách nhau bởi một vài ký tự trống. Ví dụ với n = 3, m = 2 như hình vuông dưới đây sẽ cho ta file ketqua.out tương ứng. Ketqua.Out 10 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0
  • 16. 29. Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu xuống dòng (‘n’), dấu về đầu dòng (‘r’) và dấu kết thúc dòng (‘0’). Cho hai file văn bản DATA1.IN và DATA2.IN. Hãy tìm tập các từ xuất hiện trong file DATA1.IN nhưng không xuất hiện trong file DATA2.IN. Các từ tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên K là số từ xuất hiện trong file DATA1.IN nhưng không xuất hiện trong file DATA2.IN; · K dòng kế tiếp, mỗi dòng ghi lại một từ xuất hiện trong file DATA1.IN nhưng không xuất hiện trong file DATA2.IN. Ví dụ dưới đây sẽ minh họa cho các file dữ liệu vào và file kết quả của bài toán. Data1.in AB AC AD AE AF AG AH AB AC AD AE AF AG AH Data2.in AB AC AD AI CA CB CD CE CF CG Ketqua.out 4 AE AF AG AH 30. Số điện thoại di động của một hãng viễn thông được đánh số theo qui cách 091N. XXX.XXX. Trong đó, N là số từ 2 đến 9, X là một số từ 0 đến 9. Ta định nghĩa các loại số điện thoại sau: · Số điện thoại loại I (Loại I): Là những số mà sáu số cuối cùng của nó đọc xuôi từ trái sang phải hay đọc nguợc từ phải sang trái ta đều nhận được một số có sáu chữ số giống nhau. Ví dụ số: 0913.558855. · Số điện thoại loại II (Loại II): Là những số điện thoại Loại I mà tổng sáu chữ số cuối cùng của nó là một số chia hết cho 10 . Ví dụ số: 0913.104.401 (1+0+4+4+0+1=10). · Số điện thoại loại III (Loại III): Là những số điện thoại Loại II mà sáu chữ số cuối cùng của nó không chứa bất kỳ một số 0 nào. Ví dụ số: 0913. 122.2211. Hãy viết chương trình thực hiện: · Liệt kê tất cả các số điện thoại Loại I không chứa các số điện thoại Loại II. · Liệt kê tất cả các số điện thoại Loại II không chứa các số điện thoại Loại III. · Liệt kê tất cả các số điện thoại Loại III.
  • 17. å= 31. Viết chương trình tìm giá trị tối ưu fopt = f(x1,x2,..,xn) và phương án tối ưu xopt = (x1, x2,..,xn) n của hàm mục tiêu f x x x = c x n i i 1 2 ( , ,.., ) ; Trong đó i 1 n ( ) ( ) { } þ ý ü î í ì Î £ = Î å= n n i i j x x x D x x x a x b x , ,.., , ,.., : ; 0,1 ; 1 2 1 2 ; cj, aj, b là các số nguyên dương i 1 (j=1,2,..,n). Dữ liệu vào n, b, cj, aj được cho trong file Data.in theo khuôn dạng sau: · Dòng đầu tiên ghi lại hai số tự nhiên n và b, hai số được viết cách nhau bởi một hoặc vài kí tự trống. · Dòng kế tiếp ghi lại n số nguyên dương c1, c2, .., cn. ; các số được viết cách nhau bởi một hoặc vài kí tự trống. · Dòng cuối cùng ghi lại n số nguyên dương a1, a2,..,an; các số được viết cách nhau bởi một hoặc vài kí tự trống. Giá trị tối ưu và phương án tối ưu tìm được ghi lại trong file Data.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại giá trị tối ưu fopt = f(x1,x2,..,xn) của hàm mục tiêu. · Dòng kế tiếp ghi lại n thành phần của phương án tối ưu xopt = (x1, x2,..,xn). Mỗi thành phần được viết cách nhau một vài kí tự trống. Ví dụ dưới đây sẽ minh họa cho file Data.in và file Data.out của bài toán Data.in Data.out 4 8 14 8 5 3 1 1 1 0 1 4 3 2 1
  • 18. 32. Cho đồ thị vô hướng G1 =<V1,E1>, G2 =<V2,E2>, G3 =<V3,E3>. Trong đó, G1 được biểu diễn dưới dạng ma trận kề, G2 được biểu diễn dưới dạng danh sách cạnh, G3 được biểu diễn dưới dạng danh sách kề. Mỗi đồ thị được được tổ chức trong các file dữ liệu theo khuôn dạng sau: · Đồ thị G1: Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị; n dòng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau của ma trận kề được viết phân biệt với nhau bằng một hoặc vài khoảng trống. · Đồ thị G2: Dòng đầu tiên ghi lại hai số tự nhiên n và m tương ứng là số đỉnh và số cạnh của đồ thị. Hai số được viết cách nhau bởi một hoặc vài kí tự trống; m dòng kế tiếp mỗi dòng ghi lại một cạnh của đồ thị. Đỉnh đầu và đỉnh cuối của mỗi cạnh được viết phân biệt với nhau bằng một hoặc vài kí tự trống. · Đồ thị G3: Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị; n dòng kế tiếp mỗi dòng ghi lại danh sách kề của đỉnh tương ứng. Hai đỉnh trong cùng một danh sách kề được phân biệt với nhau bằng một hoặc vài kí tự trống. Hãy viết chương trình thực hiện những công việc sau: a. Cho đồ thị G1 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ thị G2. b. Cho đồ thị G1 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ thị G3. c. Cho đồ thị G2 bất kì. Hãy chuyển đổi đồ thị G2 thành đồ thị được biểu diễn dưới dạng đồ thị G1. d. Cho đồ thị G2 bất kì. Hãy chuyển đổi đồ thị G2 thành đồ thị được biểu diễn dưới dạng đồ thị G3. e. Cho đồ thị G3 bất kì. Hãy chuyển đổi đồ thị G3 thành đồ thị được biểu diễn dưới dạng đồ thị G1. f. Cho đồ thị G3 bất kì. Hãy chuyển đổi đồ thị G1 thành đồ thị được biểu diễn dưới dạng đồ thị G2. Ví dụ dưới đây sẽ minh họa cho biểu diễn của đồ thị G1, G2, G3. <Đồ thị G1> <Đồ thị G2> <Đồ thị G3> 5 5 4 5 0 1 1 0 0 1 2 2 3 1 0 0 1 0 1 3 1 4 1 0 0 0 1 2 4 1 5 0 1 0 0 0 3 5 2 0 0 1 0 0 3
  • 19. 33. Cho đồ thị vô hướng G =<V,E>, trong đó V là tập đỉnh, E là tập cạnh. Ta gọi cạnh eÎE là cầu nếu khi loại bỏ nó ra khỏi đồ thị làm tăng số thành phần liên thông của đồ thị. Hãy viết chương trình tìm tất cả các cạnh cầu của đồ thị. Dữ liệu vào cho bởi file Dothi.in theo khuôn dạng sau: · Dòng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ thị. · n dòng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau của ma trận kề được viết cách nhau bởi một hoặc vài kí tự trống. Kết quả ra ghi lại trong file Canhcau.out theo khuôn dạng sau: · Dòng đầu tiên ghi lại số các cạnh cầu mà bạn tìm được. · Những dòng kế tiếp mỗi dòng ghi lại một cạnh cầu, đỉnh đầu và đỉnh cuối của cạnh được viết cách nhau bởi một vài kí tự trống. Ví dụ dưới đây sẽ minh họa cho file Dothi.in và Canhcau.out. Dothi.in Canhcau.out 5 4 0 1 1 0 0 1 2 1 0 0 1 0 1 3 1 0 0 0 1 2 4 0 1 0 0 0 3 5 0 0 1 0 0