Professional Documents
Culture Documents
Bai Tap NMLT 22 23 Student
Bai Tap NMLT 22 23 Student
Bai Tap NMLT 22 23 Student
1. Viết chương trình nhập 2 điểm A(x1,y1) và B(x2,y2) trên hệ trục tọa độ Descartes. Tính và in
khoảng cách giữa 2 điểm đó theo công thức:
2. Nhập tọa độ 3 đỉnh của một tam giác. Tính và in diện tích tam giác theo công thức:
8. (*) Nhập tọa độ một điểm (x,y), kiểm tra xem điểm đó có nằm trong hình chữ nhật tâm
(0,0) , chiều dài 10 và chiều cao 5
Hướng dẫn: Một điểm nằm trong hình chữ nhật nếu độ đo theo trục ngang đến điểm
(0,0) nhỏ hơn hoặc bằng 10/2 và độ đo theo trục dọc đến điểm (0,0) nhỏ hơn hoặc bằng
5/2.
9. Nhập tọa độ một điểm p. Kiểm tra xem điểm đó nằm trong hay nằm ngoài hình tam giác
vuông như hình vẽ
10. (*) Nhập tọa độ một điểm (x,y), kiểm tra xem điểm đó có nằm trong phần hình tô
sọc chéo như hình bên phải
𝑥2 𝑥4 𝑥 2𝑛
4)𝑆 = + + ...+
2! 4! (2𝑛)!
THUẬT TOÁN TRÊN CHỮ SỐ
1. Tính tổng các chữ số của một số nguyên dương. VD : n=3412 thì tổng là 3+4+1+2=10.
2. Đếm số chữ số của một số nguyên dương .
3. Đếm số chữ số chẵn của một số nguyên dương.
4. Đếm số chữ số lẻ của một số nguyên dương.
5. Tính tổng các chữ số chẵn của một số nguyên dương.
6. Tính tổng các chữ số lẻ một số nguyên dương.
7. Nhập một số nguyên dương. In ra số viết ngược lại của số nhập.
Ví dụ: Số nhập 39845 thì số in ra là 54893
KIỂM TRA MỘT (NHIỀU) SỐ THỎA MỘT SỐ ĐIỀU KIỆN :
1. Kiểm tra một số có phải là số nguyên tố.
2. Số hoàn chỉnh là số bằng tổng các ước số của nó (không kể chinh nó). Kiểm tra xem một
số n có phải là số hoàn chỉnh.
3. Nhập số nguyên dương n. Viết ra màn hình các số hoàn chỉnh n.
4. Kiểm tra một số có phải là số chính phương. Số chính phương = bình phương của một số
nguyên.
KHÁC :
1. Viết chương trình trò chơi đoán số: Cho máy sinh ra một số (x) ngẫu nhiên trong phạm vi
từ 0 đến 99. Người chơi được quyền đoán số đó trong 7 lần. Chương trình thông báo kết
quả so sánh số nhập (y) với số của máy (x).
Hướng dẫn: Sử dụng hàm rnd để sinh số thực ngẫu nhiên trong phạm vi từ 0 đến 1. Biểu
thức int(100 x rnd) cho giá trị ngẫu nhiên trong phạm vi từ 0 đến 99.
2. Nhập một số nguyên dương. In ra số nhị phân của số đó.
3. Nhập hai số nguyên dương. In ra ước số chung lớn nhất của hai số đó.
4. Nhập hai số nguyên dương. In ra bội số chung nhỏ nhất của hai số đó.
bội số chung nhỏ nhất của a, b = a*b / ước số chung lớn nhất của
5. Nhập ba số nguyên dương. In ra ước số chung lớn nhất của ba số đó.
6. Viết chương trình nhập các số nguyên. Việc nhập sẽ được kết thúc khi nhập giá trị 0.
Tính tổng các số vừa nhập.
7. Dùng vòng lặp tạo dãy : 1 9 25 49 81 121 169 225 289 361 441 529
625.
8. Tương tự bài tập 7. Nhưng chỉ viết ra màn hình các giá trị nhỏ hơn số m cho trước.
MẢNG
HD : Đếm số cặp đối xứng có giá trị bằng nhau. Nếu số cặp đối xứng là n \ 2 thì mảng là
đối xứng. Ngược lại mảng không đối xứng. Các cặp đối xứng là : (a(1), a(n)), (a(2), a(n-
1)), . . . , (a(n\2), a(n - n\2 + 1) ), công thức tổng quát là (a(i), a(n-i+1)), i=1, 2, . . ., n\2.
26. Tính giá trị trung bình của mảng(GTTB) mảng a kiểu số thực . GTTB =( a[0] + . . . . + a[n-1] ) /
n
27. Tính giá trị lệch chuẩn của mảng(GTLC) mảng a kiểu số thực . GTLC = ( (a[0]-GTTB)2 + . . . .
+ (a[n-1]-GTTB)2 ) / n
28. Nhập mảng số thực dương. Tìm số nguyên bé nhất M sao cho a[i] ≤ M , với mọi i = 1, 2, . . . n.
HD :
Hàm double floor(double x) trong <math.h> trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x.
VD : floor(4.6) 4.
Hàm double ceil(double x) trong <math.h> trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x.
VD : ceil(4.6) 5.
29. Nhập mảng số thực dương a. Tìm số nguyên lớn nhất m sao cho a[i] m , với mọi i = 1,
2, . . . n.
CHUỖI : Giả sử chuỗi nhập khác rỗng và khác chuỗi chỉ toàn khoảng trắng.
int main()
{
char S[50],KQ1[50],KQ2[50], KQ3[50];
int i1, i2, i;
cin.getline(S,50);
strncpy(KQ1, S, i1);
KQ1[i1]=0;
strcpy(KQ2, S+i2+1 );
if (i2-i1-1>=1)
{
strncpy(KQ3,S+i1+1,i2-i1-1);
KQ3[i2-i1-1]=0;
cout<<KQ2<<" "<<KQ3<<" "<<KQ1<<"\n";
}
else cout<<KQ2<<" "<<KQ1<<"\n";
}
5. Trích các từ trong chuỗi S (có ít nhất 1 từ) và ghép các từ này theo thứ tự ngược với S
(Dùng strtok).
6. Đếm số từ trong một chuỗi. Giả sử chuỗi không có khoảng trắng ở 2 đầu, giữa 2 từ chỉ
có 1 khoảng trắng.
7. (*) Đếm số từ trong một chuỗi. Chuỗi được nhập tùy ý.
8. Nhập chuỗi. Viết ra từ thứ hai của chuỗi. Giả sử chuỗi không có khoảng trắng ở 2 đầu,
giữa 2 từ chỉ có 1 khoảng trắng.
9. (*)Như bài 8. Nhưng chuỗi nhập tùy ý. (dùng strtok, không dùng strtok)
10. Nhập chuỗi.Viết ra các từ, mỗi từ trên một dòng (Dùng strtok, không dùng strtok: thay
khoảng trắng bởi ‘\n’).
11. Nhập chuỗi. Đổi ký tự đầu mỗi từ thành ký tự IN. Giả sử chuỗi không có khoảng trắng
ở 2 đầu, giữa 2 từ chỉ có 1 khoảng trắng.
HD : dùng toupper(char ch) (trong thư viện <ctype.h>), hàm này sẽ cho ký IN nếu ch là
ký tự thường, các trường hợp còn lại sẽ cho ký tự ch.
12. (*) Nhập chuỗi. Đổi ký tự cuối mỗi từ thành ký tự IN.
13. Nhập chuỗi. Đổi ký tự thứ hai mỗi từ thành ký tự IN , giả sử các từ có ít nhất 2 ký tự.
14. (**CƠ BẢN)Xóa khoảng trắng hai đầu và giữa mỗi từ cách nhau một khoảng trắng.
KQ : chuỗi kết quả;
Nhập S;
vt = Tìm vị trí đầu tiên trong S khác khoảng trắng;
Qvt=0;
for (i=vt; i < strlen(S+vt); i++)
if (S[i]!='' )
KQ[Qvt++]=S[i];
else if(S[i-1]!='')
KQ[Qvt++]='';
KQ[Qvt]=0;
15. (**CƠ BẢN) Nhập một chuỗi. Giả sử chuỗi không có khoảng trắng ở 2 đầu, giữa 2 từ
chỉ có 1 khoảng trắng. Cho a là mảng các chuỗi. Gán từ thứ nhất vào phần tử a[0], gán
từ thứ hai vào phần tử a[2], . . ., gán từ thứ n vào phần tử a[n-1] (Dùng strtok, không
dùng strtok).
dem=0;
vt=0;
do
{
Nếu có t (đầu tiên) trong S kể từ ký tự thứ vt trong S :
{
dem++;
KQ = Chuỗi S kể từ ký tự vt;
vt=strlen(S)-strlen(KQ);
vt++;
}
else break;
}while (1);
21. Nhập một chuỗi có dạng S1#S2#S3#.....#S2, Si không có ký tự #, Si có thể rỗng hay chỉ toàn
khoảng trắng , được gọi là chuỗi rỗng(như bài 19). Hãy viết các Si khác rỗng ra màn hình mỗi
chuỗi trên một dòng.
22. Nhập chuỗi s. Đổi ký tự alphabet trong s thành ký tự đứng ngay sau nó trong bảng ký tự
alphabet. VD : ABC BCD, EFZ FGA
23. Viết chương trình nhập một chuỗi S viết ra màn hình các dòng, mỗi dòng là 5 ký tự của
S.
ĐỊNH NGHĨA CHƯƠNG TRÌNH CON :