Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

THPT CHUYÊN HƯNG YÊN

GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C++


BÀI 1: GIỚI THIỆU VỀ CODEBLOCKS
1. Các bước chuẩn bị
Bước 1. Download file codeblocks-16.01mingw-setup.exe trên trang web
http://www.codeblocks.org/downloads/26 .
Bước 2. Chạy file vừa tải về, lần lượt thực hiện các bước theo hướng dẫn để cài đặt
CodeBlocks trên máy tính.
Bước 3. Sau khi cài đặt xong, kiểm tra trong ổ C:\Program Files (x86) có thư mục
Codeblock. Mở chương trình với biểu tượng trên màn hình.
2. Soạn thảo chương trình
 Các phím soạn thảo:
 Các phím chữ cái, chữ số, dấu
 Sử dụng phím Shift và Caps Lock
 Hai chế độ: Viết chèn và viết đè (chuyển bằng phím Insert)
 Delete: Xóa ký tự tại vị trí con trỏ
 Backspace: Xóa ký tự bên trái con trỏ
 CTRL+L: Xóa dòng chứa con trỏ
 Di chuyển con trỏ
 : Dịch chuyển lên/xuống/phải/trái
 Enter: Đưa con trỏ xuống dòng dưới, cùng cột với vị trí đầu hàng trên
 Home/End: Đưa con trỏ về đầu/cuối dòng
 Page Up/Page Down: Đưa con trỏ lên trang trước/trang sau
 CTRL + Home/End: Đưa con trỏ về đầu trang/cuối trang
 CTRL + Page Up/Page Down: Đưa con trỏ về đầu/cuối văn bản
 SHIFT + Các phím dịch chuyển con trỏ: Chọn đoạn văn bản từ vị trí hiện tại tới vị
trí mới của con trỏ.
 Cắt dán chỉnh sửa
 Chọn đoạn văn bản:
 Hoặc dùng phím Shift + các phím dịch chuyển con trỏ
 Bôi đen đoạn dùng chuột.
 CTRL + C/X: Copy/Cắt đoạn văn bản được chọn vào Clipboard (nội dung cũ trong
Clipboard bị mất)
 CTRL + V: Dán đoạn văn bản trong Clipboard ra vị trí hiện tại của con trỏ
 CTRL+D: copy dòng hiện tại xuống dòng dưới..

1
THPT CHUYÊN HƯNG YÊN

 Undo (Alt+Backspace hoặc Ctrl + Z): Phục hồi lại văn bản từ trạng thái trước thao tác
soạn thảo gần nhất. (VD: dùng để phục hồi lại dòng lệnh vừa bị xoá)
Yêu cầu: Rèn luyện kĩ năng
 Không nhìn bàn phím, chỉ nhìn màn hình
 Tuyệt đối không dùng con chuột để dịch chuyển con trỏ hoặc mở menu.
 Gõ đủ 10 ngón
 Hạn chế sử dụng chuột, nhớ thật nhiều phím tắt (Short Cut)
 CTRL + S: Lưu file
 CTRL + O: Mở file
 CTRL + Shift + N: Tạo file mới.
 CTRL + F9: Dịch chương trình
 F9: Chạy chương trình
 CTRL + TAB: Chuyển sang file khác đang được mở trên Codeblocks Editor.
 ALT + F4: Thoát CodeBlocks
 CTRL + Shift + C: comment một số dòng.
 CTRL + Shift + V: Bỏ comment.
 CTRL + F: Tìm kiếm.
 …..
Run: Các chức năng chạy chương trình
 Run (F9): Chạy chương trình
 Step over (F7): Chạy chương trình ở chế độ gỡ rối, chạy từng dòng rồi dừng lại, hiện một
dải xanh ở dòng kế tiếp (sắp chạy tới).
 Trace into (Ctrl+F7): Tương tự như Step over, nhưng nếu dòng lệnh là một lời gọi chương
trình con, Codeblocks sẽ thực hiện việc nhảy tới mã lệnh chương trình con để tiếp tục gỡ
rối.
 Goto Cursor (F4): Chạy ở chế độ gỡ rối, chạy tới dòng chứa con trỏ thì dừng lại.
Debug: Các chức năng gỡ rối
 Debug->debugging windows -> watches: Hiện những gì trên màn hình người dùng trên
một cửa sổ mới.
 Logs (F2): Hiện những thông điệp lỗi của một công cụ hỗ trợ.

2
THPT CHUYÊN HƯNG YÊN

Bài 2. Ngôn ngữ lập trình C++ cơ bản


Cấu trúc chương trình C++
#include <iostream.h> // phần khai báo nguyên mẫu, thư viện, …
using namespace std;
int main() // tên chương trình chính
{
cout << “hello world”; //lệnh đưa ra màn hình dòng chữ “hello
world”
return 0; // thoát khỏi hàm main
}
I. Biến và kiểu dữ liệu
1. Các kiểu dữ liệu
Loại Tên kiểu Số ô nhớ Miền giá trị
Kí tự Char 1 byte -128 … 127
Unsigned char 1 byte 0…255
Số Short 2 byte -32768... 32767
nguyên
Int, long 4 byte -231…231-1
Long long 8 byte -263....263-1
Unsigned int 4 byte 0 … 232-1
Unsigned long 8 byte 0 … 264-1
long
Float -1037 … 1037
Số thực 4 byte
Biểu diễn chính xác 11 chữ số.
Double -10307 … 10307
8 byte
Biểu diễn chính xác 17 chữ số,
Logic Bool 1 byte True(1) / false(0)
2. Khai báo biến.
KHÔNG khởi tạo CÓ khởi tạo
tên_kiểu tên_biến; tên_kiểu tên_biến =
VD : int x; giá_trị;
Float y; VD : int x = 10;
Double z; int y = x + 1;
double z = 0.5;…

3
THPT CHUYÊN HƯNG YÊN

3. Gán giá trị cho biến


tên_biến = biểu thức;
VD : x = 10; y = 3; // x nhận giá trị 10, y nhận giá trị 3
Với ý nghĩa thông thường của phép toán là tính toán và cho lại một giá trị thì phép toán
gán còn một
nhiệm vụ nữa là trả lại một giá trị. Giá trị trả lại của phép toán gán chính là giá trị của biểu
thức sau dấu
bằng. Lợi dụng điều này C++ cho phép chúng ta gán "kép" cho nhiều biến nhận cùng một
giá trị bởi cú pháp:
biến_1 = biến_2 = … = biến_n = gt ;
với cách gán này tất cả các biến sẽ nhận cùng giá trị gt.
VD: x = y = z = 10;
II. Biểu thức
1 Toán tử toán học

Toán tử Tên Ví dụ
+ Cộng 12 + 4.9 // ra 16.9
- Trừ 3.98 - 4 // cho -0.02
* Nhân 2 * 3.4 // cho 6.8
/ Chia 9 / 2.0 // cho 4.5
% Lấy phần dư 13 % 3 // cho 1
2 Toán tử quan hệ

Toán tử Tên Ví dụ
== So sánh bằng 5 == 5 // cho 1
!= So sánh không bằng 5 != 5 // cho 0
< So sánh hỏ hơn 5 < 5.5 // cho 1
<= So sánh hỏ hơn hoặc bằng 5 <= 5 // cho 1
> So sánh lớn hơn 5 > 5.5 // cho 0
>= So sánh lớn hơn hoặc bằng 6.3 >= 5 // cho 1
3 Toán tử luận lý

Toán tử Tên Ví dụ
! Phủ định luận lý !(5 == 5) // được 0
&& Và luận lý 5 < 6 && 6 < 6 // được 0
|| Hoặc luận lý 5 < 6 || 6 < 5 // được 1

4
THPT CHUYÊN HƯNG YÊN

4 Toán tử trên bit

Toán tử Tên Ví dụ
~ Phủ định bit ~'00010011' được '11101100'
& Và bit '1001' & '1110' được '1000'
| Hoặc bit '1001' | '1010' được '1011'
^ XOR bit '1001' ^ '1010' được '0011'
<< Dịch trái bit '01101011' << 2 được '10101100'
>> Dịch phải bit '01101011' >> 2 được '00011010'

5 Toán tử tăng/giảm

Toán tử Tên Ví dụ (k=5)


++x Tăng một (tiền tố) ++k + 10 // được 16
x++ Tăng một (hậu tố) k++ + 10 // được 15
--x Giảm một (tiền tố) --k + 10 // được 14
x-- Giảm một (hậu tố) k-- + 10 // được 15

6 Toán tử khởi tạo

Toán tử Ví dụ Tương đương với


= n = 25
+= n += 25 n = n + 25
-= n -= 25 n = n – 25
*= n *= 25 n = n * 25
/= n /= 25 n = n / 25
%= n %= 25 n = n % 25
&= n &= 15 n = n & 15
|= n |= 6 n = n | 6
^= n ^= 13 n = n ^13
<<= n <<= 4 n = n << 4
>>= n >>= 4 n = n >> 4
7 Toán tử điều kiện
toán hạng 1 ? toán hạng 2 : toán hạng 3
VD: int m = 1, n = 2;
int min = (m < n ? m : n); // min nhận giá trị m
III. Lệnh
1. Lệnh nhập xuất

a.Nhập b.Xuất
cin >> tên biến; cout << tên biến;
VD: Để nhập dữ liệu cho các biến x, VD: int x = 10, y = 15;
y, z cout<<x; // Màn hình hiện ra số 10

5
THPT CHUYÊN HƯNG YÊN

cin >> x; cout<<y; // Màn hình hiện ra số 15


cin >> y; … notes: printf();
notes: scanf();
VD chương trình nhập 2 số, tính tổng 2 số và đưa ra:
#include <iostream.h>
using namespace std;
int main()
{
int a,b; // Khai báo hai biến a, b kiểu số nguyên.
cin >> a >> b;
cout << “Tong hai so la “ << a + b;
}

2. Lệnh điều kiện


a. Lệnh IF
Đôi khi chúng ta muốn làm cho sự thực thi một lệnh phụ thuộc vào một điều kiện nào
đó cần được thỏa mãn. Lệnh if cung cấp cách để thực hiện công việc này, hình thức
chung của lệnh này là:
if (biểu thức) lệnh; Nhiều lệnh ta dùng {} // khối lệnh
VD: if(a %2 ==0) cout<<”so if (balance > 0)
chan”; {
interest = balance *
if (biểu thức) lệnh 1; creditRate;
else lệnh 2; balance += interest;
if(a > 0) cout<<”so duong”; }
else if(a < 0) cout<<”so else
am”; {
else cout << ”bang interest = balance *
khong”; debitRate;
balance += interest;
}

b. Lệnh Switch
switch (biểu thức) { switch(x){
case hằng1 : các lệnh; case 0: cout << “So khong”;
... break;
case hằng n: các lệnh; case 1: cout << “So mot “;
default: các lệnh; break;
} case 2: cout << “So hai “;
break;
Default: cout << “So lon hon
hai”;
}

6
THPT CHUYÊN HƯNG YÊN

Biểu thức (gọi là thẻ switch) được ước lượng trước tiên và kết quả được so sánh với
mỗi hằng số (gọi là các nhãn) theo thứ tự chúng xuất hiện cho đến khi một so khớp
được tìm thấy.
Lệnh ngay sau khi so khớp được thực hiện sau đó. Mỗi case có thể được theo sau bởi
không hay nhiều lệnh (không chỉ là một lệnh).
Chú ý Việc thực thi tiếp tục cho tới khi hoặc là bắt gặp một lệnh break hoặc tất cả
các lệnh xen vào đến cuối lệnh switch được thực hiện.Trường hợp default ở cuối
cùng là một tùy chọn và được thực hiện nếu như tất cả các case trước đó không được
so khớp.

3. Lệnh lặp
1.1 Lệnh While
while (biểu thức) lệnh;

Đôi khi chúng ta có thể gặp vòng lặp while có thân rỗng (nghĩa là một câu lệnh null).
Ví dụ vòng lặp sau đặt n tới thừa số lẻ lớn nhất của nó.
while (n % 2 == 0) n /= 2 ;
3.2 Lệnh Do while
do do {
lệnh; cin >> n;
while (biểu thức); cout << n * n << '\n';
} while (n != 0);

Lệnh được thực thi trước tiên và sau đó biểu thức được ước lượng. Vòng lặp dừng lại khi
biểu thức sai.
Vòng lặp do ít được sử dụng thường xuyên hơn vòng lặp while. Nó hữu dụng trong những
trường hợp khi chúng ta cần thân vòng lặp thực hiện ít nhất một lần mà không quan tâm
đến điều kiện lặp.
Ở ví dụ, chúng ta thực hiện lặp đi lặp lại công việc đọc một giá trị và in bình phương của
nó, dừng khi giá trị là 0.

3.3 Lệnh For


for (biểu thức1; biểu thức2; biểu thức3) lệnh;
Biểu thức1 (thường được gọi là biểu thức khởi tạo) được tính toán trước tiên.
Mỗi vòng lặp biểu thức2 được tính toán (ước lượng).
Nếu kết quả khác 0 (tức là đúng) thì sau đó lệnh được thực thi. Cuối cùng biểu thức3 được
xử lý.
Ngược lại, nếu kết quả là 0 (sai) thì vòng lặp kết thúc.
Vòng lặp for tổng quát thì tương đương với vòng lặp while sau:
biểu thức1;
while (biểu thức 2) {
lệnh;
biểu thức 3;
}
7
THPT CHUYÊN HƯNG YÊN

VD: Đưa ra tất cả các số tự nhiên từ 1 tới 10:


for (int i = 1; i <= 10; i++) cout << i << endl;
Liệt kê tất cả các cặp số u,v với 1 ≤ u, v ≤ 5.
for (int i = 1; i <= 5; ++i)
for (int j = 1; j <= 5; ++j)
cout << '(' << i << ',' << j << ")\n";

3.4 Lối ra vòng lặp : lệnh Break, Continue


Lệnh Break
Công dụng của lệnh dùng để thoát ra khỏi (chấm dứt) các câu lệnh cấu trúc, chương trình sẽ
tiếp tục thực hiện các câu lệnh tiếp sau câu lệnh vừa thoát.
Lệnh continue
Lệnh dùng để quay lại đầu vòng lặp mà không chờ thực hiện hết các lệnh trong khối lệnh lặp.
Ví dụ 1: Giả sử với mỗi i từ 1 đến 100 ta cần thực hiện một loạt các lệnh nào đó trừ những
sối là sốchính phương. Như vậy để tiết kiệm thời gian, vòng lặp sẽ kiểm tra nếu i là số chính
phương thì sẽ quay lại ngay từ đầu đểthực hiện với i tiếp theo.

Phụ lục 1: Các thư viện thường dùng


#include <iostream> : Thư viện vào ra chuẩn
#include <fstream> : Hỗ trợ vào tra file ( file stream)
#include <cmath>: sử dụng một số hàm toán học sqrt, sin, cos, tag, log, log10, pow, floor, …
#include <cstring>: Làm việc với xâu.
#include <algorithm>: Thư viện thuật toán
#include <vector>: Sử dụng kiểu dữ liệu vector
#include <set>: Thư viện sử dụng cấu trúc tập hợp set
#include <map>
#include <queue>
#include <bits/stdc++.h>

8
THPT CHUYÊN HƯNG YÊN

MỘT SỐ VÍ DỤ CƠ BẢN
Ví dụ 1 (SCHAR.PAS): In ra màn hình 2 dòng:
Hello world!
I’m a NEWBIE.
Ví dụ 2 (SUM.PAS). Nhập vào 2 số nguyên 𝑎, 𝑏 |𝑎|, |𝑏| ≤ 109 . Hãy in ra màn hình tổng 𝑎 + 𝑏.
Dữ liệu: vào từ thiết bị nhập chuẩn (bàn phím) hai số 𝑎, 𝑏.
Kết quả: In ra thiết bị xuất chuẩn (màn hình) tổng 𝑎 + 𝑏.
Ví dụ:
Sample Input Sample Output
2 3 5
5 9 14
9 1 10

Ví dụ 3 (CIRAREA.CPP). Nhập vào một số thực a là bán kính của hình tròn. Hãy tính diện tích
hình tròn đó.
Dữ liệu: vào từ thiết bị nhập chuẩn gồm một số thực là bán kính của hình tròn.
Kết quả: ghi ra biết bị xuất chuẩn gồm số thực làm tròn đến hai chữ số sau dấu chấm thập
phân là diện tích hình tròn đó.
Ví dụ:
Sample Input Sample Output
2.5 19.63
5.9 109.30
9.1 260.02

Ví dụ 4 (MAX.CPP)
Cho 3 số nguyên 𝑎, 𝑏, 𝑐, hãy tìm giá trị lớn nhất trong ba số đó
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm một dòng ghi ba số 𝑎, 𝑏, 𝑐 (|𝑎|, |𝑏|, |𝑐| ≤ 109 )
Kết quả: Ghi ra thiết bị xuất chuấn một số nguyên duy nhất là số lớn nhất trong ba số 𝑎, 𝑏, 𝑐.
Ví dụ:

Sample Input Sample Output


3 4 5 5
3 2 -1 3
-9 18 4 18

9
THPT CHUYÊN HƯNG YÊN

MỘT SỐ BÀI TẬP LUYỆN TẬP NHẬP XUẤT - LỆNH ĐIỀU KIỆN
Bài 1. (HASHTAG.CPP)
Viết chương trình in ra màn hình hình vẽ sau:
##########

#++++++++#

##########

Bài 2. (TRIAREA.CPP)
Cho 𝑎, 𝑏, 𝑐 là ba số thực tương ứng với độ dài ba cạnh của một tam giác. Hãy tính diện tích tam
giác đó.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm 3 dòng:

 Dòng 1 chứa số thực 𝑎.


 Dòng 2 chứa số thực 𝑏.
 Dòng 3 chứa số thực c.
Kết quả: ghi ra thiết bị xuất chuẩn một số thực duy nhất là diện tích tam giác đó (làm tròn đến
2 chữ số sau dấu chấm thập phân).
Ví dụ:
Sample Input Sample Output
3 6.00
4
5
Bài 3. (RECTAREA.CPP)
Cho 𝑎, 𝑏 là hai số thực tương ứng với độ dài hai cạnh một hình chữ nhật. Hãy tính chu vi và
diện tích hình chữ nhật đó.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm 2 dòng:
 Dòng 1 chứa số thực 𝑎.
 Dòng 2 chứa số thực 𝑏.
Kết quả: ghi ra thiết bị xuất chuẩn gồm hai dòng:
 Dòng 1: gồm một số thực là chu vi của hình chữ nhật đó (làm tròn đến 2 chữ số sau dấu
chấm thập phân).
 Dòng 2. gồm một số thực là diện tích của hình chữ nhật đó (làm tròn đến 2 chữ số sau
dấu chấm thập phân).
Ví dụ:

10
THPT CHUYÊN HƯNG YÊN

Sample Input Sample Output


3 14.00
4 12.00

Bài 4. (RECT.CPP)
Cho một hình chữ nhật với chu vi là 𝐿 và diện tích là 𝑆, hãy xác định độ dài hai cạnh của hình
chữ nhật đó.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm hai dòng
 Dòng 1 ghi số thực 𝐿
 Dòng 2 ghi số thực 𝑆
Kết quả: Ghi ra thiết bị xuất chuẩn gồm 2 dòng:
 Dòng 1 ghi độ dài cạnh ngắn hơn của hình chữ nhật (làm tròn đến hai chữ số sau dấu
chấm thập phân)
 Dòng 2 ghi độ dài cạnh còn lại của hình chữ nhật đó (làm tròn đến hai chữ số sau dấu
chấm thập phân)
Sample Input Sample Output
14.00 3.00
12.00 4.00

Bài 5. (MIN.CPP)
Cho 3 số nguyên 𝑎, 𝑏, 𝑐, hãy tìm giá trị nhỏ nhất trong ba số đó.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm một dòng ghi ba số 𝑎, 𝑏, 𝑐 (|𝑎|, |𝑏|, |𝑐| ≤ 109 )
Kết quả: Ghi ra thiết bị xuất chuấn một số nguyên duy nhất là số nhỏ nhất trong ba số 𝑎, 𝑏, 𝑐.
Ví dụ:

Sample Input Sample Output


3 4 5 3
3 2 -1 -1
-9 18 4 -9

Bài 6. (EQN.CPP). Giải phương trình bậc hai


Cho ba số thực 𝑎, 𝑏, 𝑐, hãy tìm nghiệm của phương trình 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm một dòng ghi ba số 𝑎, 𝑏, 𝑐 (𝑎 ≠ 0)
Kết quả: Ghi ra thiết bị xuất chuấn
 Nếu phương trình vô nghiệm ghi ra NO SOLUTION
 Nếu phương trình có nghiệm kép, in ra nghiệm kép làm tròn tới 4 chữ số sau dấu chấm
thập phân.

11
THPT CHUYÊN HƯNG YÊN

 Nếu phương trình có hai nghiệm phân biệt, in ra mỗi nghiệm trên một dòng làm tròn
tới 4 chữ số sau dấu chấm thập phân, nghiệm nhỏ hơn in trước

Ví dụ:

Sample Input Sample Output


3 4 5 NO SOLUTION
3 2 -1 -1.0000
0.3333
1 2 1 -1.0000

Bài 7. (INTERVAL.CPP)
Viết chương trình nhập vào 4 số thực a, b, c, d với a ≤ 𝑏, 𝑐 ≤ 𝑑. Hãy cho biết trên trục số hai
đoạn [𝑎, 𝑏] và [𝑐, 𝑑] có điểm chung hay không?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm một dòng ghi bốn số 𝑎, 𝑏, 𝑐, 𝑑.
Kết quả: Ghi ra thiết bị xuất chuấn YES nếu hai đoạn [𝑎, 𝑏], [𝑐, 𝑑] có điểm chung, ngược lại ghi
ra NO.

Sample Input Sample Output


3 4 5 10 NO
2 4 -1 3 YES
1 2 0 10 YES

Bài 8. (AVERAGE.CPP)
Cho hai số nguyên a, b có |a|, |b| ≤ 2.109 , hãy tính trung bình cộng của a và b.
Chú ý: Đối với số nguyên có các phép tính: +, -, div, mod (div là phép lấy phần nguyên, mod là
phép lấy phần dư. Ví dụ: 5 – 2 = 2, 5 + 2 = 7, 5 div 2 = 2, 5 mod 2 = 1) nếu 2 toán hạng có kiểu
dữ liệu thế nào thì kết quả tính cũng là thuộc đúng kiểu dữ liệu đó.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm một dòng ghi bốn số 𝑎, 𝑏
Kết quả: Ghi ra thiết bị xuất chuấn giá trị trung bình cộng của hai số đó làm tròn đến hai chữ
số sau dấu chấm thập phân.

Sample Input Sample Output


3 4 3.50
-2 -4 -3.00

Bài 9. ƯỚC SỐ CHUNG LỚN NHẤT (GCD.CPP)


Nhập vào hai số tự nhiên 𝑎, không đồng thời bằng 0. Cho biết ước số chung lớn nhất của 𝑎 và 𝑏

12
THPT CHUYÊN HƯNG YÊN

Dữ liệu: Vào từ thiết bị nhập chuẩn hai số nguyên không âm 𝑎, 𝑏 ≤ 1018 cách nhau bởi dấu
cách, (𝑎, không đồng thời bằng 0)
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất ước số chung lớn nhất của 𝑎 và 𝑏
Ví dụ:

Sample Input Sample Output


3 4 1
12 18 3

Gợi ý: Đối với ràng buộc đề bài 𝑎, 𝑏 ≤ 1018 thì kiểu dữ liệu phù hợp để khai báo hai biến 𝑎, 𝑏 là
int64 chứ không phải là integer.
Bài 10. BỘI SỐ CHUNG NHỎ NHẤT (LCM.CPP)
Cho hai số nguyên dương 𝑎,, tìm bội số chung nhỏ nhất của 𝑎 và 𝑏
Dữ liệu: Vào từ thiết bị nhập chuẩn hai số nguyên dương 𝑎, 𝑏 ≤ 109 trên một dòng cách nhau
bởi dấu cách.
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là bội số chung nhỏ nhất của 𝑎 và
𝑏
Ví dụ:

Sample Input Sample Output


2 4 4
12 18 36

Bài 11. TỔNG CHỮ SỐ (DIGITSUM.CPP)


Viết chương trình nhập vào số nguyên dương 𝑛. Tính tổng các chữ số trong biểu diễn thập
phân của 𝑛
Dữ liệu: Vào từ thiết bị nhập chuẩn số nguyên dương 𝑛 ≤ 1018
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là tổng các chữ số của 𝑛
Ví dụ:

Sample Input Sample Output


2 2
12345 15

13
THPT CHUYÊN HƯNG YÊN

Bài 12. TỔNG CÁC ƯỚC (SD.CPP)


Cho số nguyên dương 𝑛, tính tổng các ước dương của 𝑛
Dữ liệu: Vào từ thiết bị nhập chuẩn số nguyên dương 𝑛 ≤ 1014
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là tổng các ước của 𝑛
Ví dụ:

Sample Input Sample Output


2 3
6 12

Bài 13. SỐ NGUYÊN TỐ (PRIME.CPP)


Số nguyên dương 𝑛 được gọi là số nguyên tố nếu nó có đúng 2 ước dương là 1 và 𝑛.
Yêu cầu: Viết chương trình kiểm tra một số 𝑛 có phải số nguyên tố hay không.
Dữ liệu: Vào từ thiết bị nhập chuẩn số nguyên 𝑛 (|𝑛| ≤ 1012 )
Kết quả: Ghi ra thiết bị xuất chuẩn từ YES nếu 𝑛 là số nguyên tố, NO nếu 𝑛 không phải số
nguyên tố
Ví dụ:
Sample Input Sample Output
2 YES
6 NO

BÀI 14. ĐẶT BÁNH (PIZZA.CPP)


Để chuẩn bị cho buổi sinh nhật của Cuội, mẹ bạn ấy đã sắp một vài chiếc bàn hình tròn
trong phòng khách và dự định trên mỗi bàn sẽ đặt một chiếc bánh pizza cho các bạn ăn nhẹ
trước khi buổi tiệc sinh nhật bắt đầu. Tuy nhiên, khi những chiếc bánh pizza được chuyển đến,
bà phát hiện ra rằng tất cả chúng đều có hình chữ nhật. Bà băn khoăn rằng với mỗi chiếc pizza
kích thước 𝑎 × 𝑏 liệu có thể đặt lên chiếc bàn hình tròn bán kính r mà không có phần nào của
bánh bị choán ra ngoài biên của chiếc bàn?

Yêu cầu: Với mỗi cặp 3 số 𝑟, 𝑎, 𝑏 tương ứng là bán kính của chiếc bàn và kích thước chiếc bánh
pizza. Bạn hãy cho biết liệu có thể đặt chiếc bánh Pizza lên chiếc bàn hay không?

Dữ liệu: vào từ thiết bị nhập chuẩn gồm 3 số 𝑟, 𝑎, 𝑏 (𝑟, 𝑎, 𝑏 ≤


Sample Input Sample Output
103 ) tương ứng là bán kính, chiều dài các cạnh của chiếc bánh.
5 6 7 YES
1 2 3 NO
Kết quả: Ghi ra thiết bị xuất chuẩn YES/NO tương ứng với câu 28 32 40 YES
trả lời chiếc bánh có/không đặt vừa lên chiếc bàn. 35 20 70 NO

14

You might also like