Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết

Cửa sổ gồm 2 giao diện chính :

 Vùng trống bên trái để viết Code

 Phía bên phải quản lý các file trong Project

Có 3 thƣ mục chính ở cửa số Explorer:

 Source Files (*.cpp): Chứa các file cài đặt các hàm

 Header Files (*.h): Chứa các file khai báo

 Resource Files: Chứa các tài nguyên (icon, bitmap,. . .)

 

pdf 52 trang yennguyen 2100
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết

Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết
KIẾN THỨC CƠ BẢN VỀ 
NGÔN NGỮ LẬP TRÌNH C/C++ 
KỸ THUẬT LẬP TRÌNH NÂNG CAO 
TRƢỜNG CAO ĐẲNG CNTT TP.HCM 
KHOA CÔNG NGHỆ THÔNG TIN 
Chƣơng 1: 
Giảng Viên: ThS. Dƣơng Thành Phết 
Email: phetcm@gmail.com 
Website:  
Tel: 0918158670 – facebook.com/DuongThanhPhet 
1. TẠO PROJECT VỚI VS 2010 
 Bước 1: Khởi động Visual Studio 2010 
 Bước 2: Chọn menu File / New / Project 
Chọn ngôn ngữ C++ , Chọn kiểu project là Win32 Console 
Application; Đặt tên cho ứng dụng ở mục Name; Click 
Browse để chọn vị trí lưu Project và OK 
1. TẠO PROJECT VỚI VS 2010 
 Bƣớc 3: Chọn kiểu ứng dụng Console và chọn Empty 
Project. Nhấn Finish để hoàn tất. 
1. TẠO PROJECT VỚI VS 2010 
 Giao diện sau khi tạo Project 
Cửa số Explorer để 
quản lý các file trong 
Project 
Chọn Solution Explorer 
1. TẠO PROJECT VỚI VS 2010 
Cửa sổ gồm 2 giao diện chính : 
 Vùng trống bên trái để viết Code 
 Phía bên phải quản lý các file trong Project 
 Có 3 thƣ mục chính ở cửa số Explorer: 
 Source Files (*.cpp): Chứa các file cài đặt các hàm 
 Header Files (*.h): Chứa các file khai báo 
 Resource Files: Chứa các tài nguyên (icon, bitmap,. . .) 
1. TẠO PROJECT VỚI VS 2010 
Qui ƣớc: 
Để dễ dàng viết và quản lý code theo phương pháp lập trình thủ 
tục, mỗi Project mới, ta qui ước như sau: 
Trong Header File: 
 Khaibao.H: Chứa các khai báo hàm, hằng số,  
Trong Source File: 
 Main.cpp: Cài đặt hàm main() 
 Caidat.cpp: Cài đặt các hàm con đã khai báo 
1. TẠO PROJECT VỚI VS 2010 
Tạo file khai báo (khaibao.h) 
 Click phải thư mục Header Files 
 Chọn Add Chọn New Item 
1. TẠO PROJECT VỚI VS 2010 
 Chọn Code, Header File (.h) 
 Nhập khaibao.h vào ô Name 
 Chọn OK, sau đó chọn Yes 
1. TẠO PROJECT VỚI VS 2010 
Tạo file cài đặt (Main.cpp, Caidat.cpp) 
 Click phải thư mục Source File -> chọn Add chọn 
New Item 
 Chọn Code, CPP File (.cpp) 
 Nhập Main.Cpp vào ô Name, chọn OK, chọn Yes 
 Tương tự, tiếp tục tạo file caidat.cpp 
1. TẠO PROJECT VỚI VS 2010 
Khaibao.h 
#include 
using namespace std; 
void Nhap(int &a, int &b); 
long Tong(int a, int b); 
1. TẠO PROJECT VỚI VS 2010 
Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. Tính 
tổng và xuất ra màn hình. 
Main.Cpp 
#include "khaibao.h" 
void main() 
{ 
 int a, b; 
 long s; 
 Nhap(a, b); 
 s = Tong(a, b); 
 cout<<"Tong a va b: "<<s; 
} 
1. TẠO PROJECT VỚI VS 2010 
Caidat.Cpp 
#include "khaibao.h" 
void Nhap(int &a, int &b) 
{ 
 cout<<"Nhap so nguyen thu nhat: "; 
 cin>>a; 
 cout<<"Nhap so nguyen thu hai: "; 
 cin>>b; 
} 
long Tong(int a, int b) 
{ 
 return a + b; 
} 
1. TẠO PROJECT VỚI VS 2010 
Dịch, sửa lỗi và chƣơng trình 
 Biên dịch và kiểm tra lỗi: Nhấn Ctrl + Shift + B 
 Nếu có thông báo lỗi (error) thì quan sát và sửa lỗi (cửa 
sổ lỗi xuất hiện bên dưới màn hình soạn thảo code) 
 Chạy chương trình: Ctrl + F5 (hoặc F5) 
1. TẠO PROJECT VỚI VS 2010 
Kết quả chạy chương trình (Ctrl + F5) 
1. TẠO PROJECT VỚI VS 2010 
Cách 1: 
 Khởi động VS 
 Vào menu File/ Open / Project or Solution 
 Chọn thư mục chứa Project 
 Chọn tên Project Open 
2. MỞ PROJECT 
Cách 2: 
 Mở thư mục chứa Project 
 Double click vào file *.sln 
2. MỞ PROJECT 
18 
3.1. Lệnh 
 Lệnh là một biểu thức, thực hiện một chức năng: khai 
báo, gán, xuất, nhập, tính toán  được kết thúc là ; 
 Không nên đặt nhiều lệnh trên cùng một dòng 
3.2. Khối lệnh 
 Khối lệnh gồm nhiều lệnh được đặt trong cặp dấu ngoặc 
{ . . . } 
18 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
3.3. Lời chú thích (comment): 
1 dòng: 
 // . . . . . 
Nhiều dòng: 
 /* . . . . 
 . . . . */ 
19 
19 
3.4. Kiểu dữ liệu 
Kiểu dữ liệu tập các giá trị thuộc một kiểu nào đó. 
Gồm 2 loại: 
 Kiểu cơ sở: Số nguyên; Số thực; Luận lý ; Mảng; Chuỗi 
 Kiểu tự định nghĩa: Dùng những kiểu cơ sở để xây 
dựng thành những kiểu dữ liệu mới cho phù hợp với bài 
toán (Kiểu cấu trúc - struct). 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
20 
STT KIỂU GHI CHÚ KÍCH THƢỚC 
KIỂU LIÊN TỤC (SỐ THỰC) 
1 float 4 bytes 
2 double 8 bytes 
3 long double 8 bytes 
KIỂU RỜI RẠC (SỐ NGUYÊN) 
1 char Ký tự hoặc Số nguyên 1 byte 
2 unsigned char Số nguyên dương 1 byte 
3 short Số nguyên 2 bytes 
4 unsigned short Số nguyên dương 2 bytes 
5 int Số nguyên 4 bytes 
6 unsigned int Số nguyên dương 4 bytes 
7 long Số nguyên 4 bytes 
8 unsigned long Số nguyên dương 4 bytes 
KIỂU LUẬN LÝ 
1 bool Gồm 2 giá trị: true hoặc false 
20 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
21 
3.5. Biến 
 Một biến đại diện cho một vùng nhớ của máy tính. 
 Tên biến được dùng để tham khảo đến những vùng 
nhớ này. 
 Biến để lưu trữ các giá trị do người dùng nhập vào 
hoặc các giá trị tạm thời trong quá trình tính toán. 
 Mỗi biến sẽ có tên và kiểu dữ liệu tương ứng. 
 Phải khai báo Biến trước khi sử dụng 
21 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
22 
Khai báo biến 
Cú pháp 
 tênbiến; 
22 
Ví dụ: 
int a; //Khai báo biến để lưu số nguyên tên a 
float c; //Khai báo biến để lưu số thực tên c 
Khai báo nhiều biến cùng kiểu 
 tênbiến1, tênbiến2, tênbiến3; 
 Ví dụ: 
 int a, x, y; 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
23 
 Bắt đầu bằng một ký tự. 
 Bao gồm: các ký tự chữ, số hoặc dấu gạch dưới (_) 
 Không có khoảng trắng trong tên biến. 
 Không dài quá 256 ký tự. 
 Không được trùng với các từ khoá của C 
 struct, long, int, while, for, if, else, continue, 
typedef, do, goto, case, define,  
 Không được trùng với phạm vi khai báo. 
 Tên gợi nhớ. Phân biệt chữ hoa và thường 
23 
Qui tắc đặt tên biến 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
24 
3.6. Hằng 
24 
Hằng là các đại lượng mà giá trị của nó không thay đổi 
trong suốt chương trình . Khai báo hằng: 
 #define tênhằng giátrị; 
Ví dụ : 
 #define MAX 1000; 
 #define pi 3.141593; 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
25 
25 
STT PHÉP TOÁN Ý NGHĨA 
PHÉP TOÁN SỐ HỌC 
1 + Cộng 
2 - Trừ 
3 * Nhân 
4 / Chia lấy phần nguyên 
5 % Chia lấy phần dư 
PHÉP TOÁN QUAN HỆ 
1 > Lớn hơn 
2 < Nhỏ hơn 
3 >= Lớn hơn hoặc bằng 
4 <= Nhỏ hơn hoặc bằng 
5 == Bằng nhau 
6 != Khác nhau 
3.7. Các phép toán 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
26 
26 
PHÉP TOÁN LOGIC 
1 ! NOT Không 
2 && AND Và 
3 || OR Hoặc 
TOÁN TỬ TĂNG GIẢM 
1 ++ Tăng 1 
2 -- Giảm 1 
PHÉP TOÁN THAO TÁC TRÊN BIT 
1 & AND 
2 | OR 
3 ^ XOR 
4 << Dịch trái 
5 >> Dịch phải 
6 ~ Lấy phần bù theo bit 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
27 
Cú pháp: 
(BT Đ.kiện)?: 
Ví dụ: 
int n; 
(n%2==0)? n ++ : n --; 
 nếu n = 10 thì giá trị n = 11 
 nếu n = 21 thì giá trị n = 20 
27 
3.8. Toán tử điều kiện 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
28 
28 
Thứ tự ưu tiên của các phép toán thường dùng theo trật tự 
từ trái sang phải từ trên xuống dưới như sau: 
() [ ] -- ++ & ! * / 
% + - >= == 
 != && || 
Thứ tự ƣu tiên các phép toán 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
29 
3.9. Hàm nhập xuất 
Thƣ viện hàm: iostream.h 
Hàm nhập giá trị từ bàn phím: 
 cin>>tênbiến; 
 Ví dụ: int a; 
 cin>>a; //Nhập giá trị từ phím sẽ lưu vào biến a 
Hàm xuất giá trị ra màn hình: 
 cout<<tênbiến hoặc chuỗi ký tự; 
 Ví dụ: int a = 5, b-7; 
 cout<<“Gia tri cua a = “<<a<<“b=“<<b; 
 Ví dụ: 
 int b = 7, c = 9; 
 cout<< “Gia tri của b =“ << b << “ gia tri cua c = “ << c; 
29 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
30 
Xuất có định dạng 
Thƣ viện iomanip.h 
 cout<<setw(n)<<tênbiến; 
 Chừa 1 khoảng n ký tự để xuất giá trị 
30 
Ví dụ: 
 int a=7, b=9; 
 cout<<a<<setw(5)<<b;//Chừa 5 vị trí để xuất giá trị b 
 Kết quả: 7 9 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
31 
cout<<setprecision(n) <<tênbiến; ; 
 Xuất số thập phân gồm n-1 chữ số lẻ(phần thập phân) 
31 
Ví dụ: 
 float a=7.56745F, b=5.339F; 
 cout<<a<<endl; 
 cout<<setprecision(3)<<a<<endl; 
 cout<<setprecision(2)<<b<<endl; 
Kết quả: 
7.56745 
7.57 
5.3 
5.339 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
32 
Xuất ký tự đặc biệt 
Ký tự Ý nghĩa Ví dụ 
\‟ Xuất dấu nháy đơn cout<<“ \‟ ”; Kết quả: „ 
\” Xuất dấu nháy đôi cout<<“ \” ”; Kết quả: “ 
\\ Xuất dấu chéo ngược \” cout<<“ \\ ”; Kết quả: \ 
\0 Ký tự Null Gán ký tự kết thúc của chuỗi 
\a Alert : Tiếng bip 
\t Tab vào một đoạn 
cout<<"xyz\tzyx”; 
Kết quả: xyz zyx 
\b Xuất lùi về sau 
cout<<"xyz\t\bzyx”; 
Kết quả: xyzzyx 
\n 
hoặc endl 
Xuống dòng 
cout<<"xyz\nzyx”; 
Kết quả: xyz 
 zyx 
\r Về đầu dòng 
cout<<"xyz\rzyx”; Kết quả: 
zyx 
32 
3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 
4. CẤU TRÚC ĐIỀU KHIỂN 
 if ( Biểu thức ĐK) 
 khối lệnh 1; 
 . . . . . . . 
 if ( Biểu thức ĐK ) 
 khối lệnh 1; 
 else 
 khối lệnh 2 ; 
 . . . . . . . 
- Nếu biểu thức đúng thì sẽ 
thực hiện khối lệnh 1 
- Sau đó sẽ thực hiện các 
lệnh tiếp sau khối lệnh 1.. 
- Nếu biểu thức đúng thì sẽ 
thực hiện khối lệnh 1 
- Nếu biểu thức sai thì bỏ qua 
khối lệnh 1 mà thực hiện khối 
lệnh 2 . 
- Sau đó thực hiện tiếp các 
lệnh tiếp sau. 
4.1 Cấu rẽ nhánh (if . . . .else . . . ) 
34 
Ví dụ: Giải và biện luận phương trình: ax+b=0 
34 
4. CẤU TRÚC ĐIỀU KHIỂN 
35 
void main() 
{ 
 float a, b; 
 cout<<"Nhap vao a: "; 
 cin>>a; 
 cout<<"Nhap vao b: "; 
 cin>>b; 
 if (a == 0) 
 if (b == 0) 
 cout<<"Phuong trinh vo so nghiem"<<endl; 
 else 
 cout<<"Phuong trinh vo nghiem"<<endl; 
 else 
 cout<<"Phuong trinh co nghiem x = "<< -b / a<<endl; 
} 
35 
4. CẤU TRÚC ĐIỀU KHIỂN 
Ví dụ: Giải và biện luận phương trình: ax+b=0 
36 
switch (biểu thức) 
 case n1: 
 các câu lệnh ; 
 break ; 
 case n2: 
 các câu lệnh ; 
 break ; 
 case nk: 
 ; 
 break ; 
 [default: các câu lệnh] 
 
36 
4.2 Cấu trúc lựa chọn 
ni là các 
hằng số 
nguyên 
hoặc ký tự 
4. CẤU TRÚC ĐIỀU KHIỂN 
37 
void main() 
{ 
 int n; 
 cout<<"Nhap vao n (1<=n<=5): "; 
 cin>>n; 
 switch (n) 
 { 
 case 1: cout<<"So mot";break; 
 case 2: cout<<"So hai";break; 
 case 3: cout<<"So ba"; break; 
 case 4: cout<<"So bon"; break; 
 case 5: cout<<"So nam"; break; 
 default : cout<<"Khong doc duoc"; 
 } 
} 
37 
4. CẤU TRÚC ĐIỀU KHIỂN 
38 
38 
4.3. Cấu trúc lặp - for 
for ( ; ; ) 
{ 
 ; 
} 
Bất kỳ biểu thức nào trong 3 biểu thức nói trên đều có thể 
vắng nhưng phải giữ dấu chấm phẩy (;) 
4. CẤU TRÚC ĐIỀU KHIỂN 
Thöïc hieän caùc leänh 
trong voøng laëp
Khôûi gaùn
Ñuùng (Bieåu thöùc 
ñieàu kieän khaùc 0)Kieåm tra bieåu
thöùc ñieàu kieän
Taêng/ giaûm chæ 
soá laëp
Sai (Biểu thức 
ñiều kiện = 0)
39 
while ( ) 
 khối lệnh; 
 
39 
4.4. Cấu trúc lặp - while 
Kiểm tra điều kiện của biểu thức điều kiện. 
 Nếu biểu thức điều kiện bằng true thì thực hiện các lệnh trong 
vòng lặp, Quay lặp lại. 
 Ngược lại thoát khỏi lặp. 
4. CẤU TRÚC ĐIỀU KHIỂN 
40 
do 
{ 
 ; 
} while (biểu thức điều kiện); 
40 
4.5. Cấu trúc lặp – do . . .While 
 Thực hiện khối lệnh cho đến khi biểu thứcn điều kiện 
có giá trị bằng false. 
 Cấu trúc lặp dowhile ít nhất thực hiện khối lệnh 
được 1 lần 
4. CẤU TRÚC ĐIỀU KHIỂN 
41 
4.6. Lệnh break: 
Thoát khỏi các cấu trúc switch, while, for, dowhile 
chứa nó gần nhất. 
41 
4. CẤU TRÚC ĐIỀU KHIỂN 
4.7. Lệnh continue: 
 Được sử dụng trong các vòng lặp như while, for, 
dowhile. 
 Khi lệnh continue được gọi thì chương trình sẽ quay 
trở về đầu vòng lặp để bắt đầu lần lặp mới 
 Nếu có các lệnh còn lại (cùng trong vòng lặp) đặt sau 
continue sẽ không được thực hiện. 
42 
5.1. Khái niệm 
 Hàm-Function 
 Là một đoạn chương trình độc lập thực hiện trọn 
vẹn một công việc nhất định sau đó trả về gia ́ trị 
cho chương trình gọi nó 
 Là sự chia nhỏ của chương trình. 
 Mục đích sử dụng hàm: 
 - Khi có một công việc giống nhau cần thực hiện ở 
nhiều vị trí. 
 - Khi cần chia một chương trình lớn phức tạp thành 
các đơn thể để chương trình được trong sáng, dễ hiểu 
trong việc xử lý. 
42 
5. XÂY DỰNG HÀM CON 
43 
43 
5.2. Khai báo và sử dụng hàm 
Type tênhàm(Các tham số){ 
 Khai báo các biến cục bộ; 
 Các câu lệnh; 
 [return [biểu thức];] 
} 
Type: Kiểu dữ liệu giá trị trả về của hàm 
Kiểu dữ liệu trả về của hàm gồm 2 loại 
 void: Không trả về giá trị 
 float / int / long / char */ kiểu cấu trúc /  : Trả về 
giá trị kết quả có kiểu dữ liệu tương ứng 
Thân hàm 
5. XÂY DỰNG HÀM CON 
44 
int Tong(int a, int b) 
{ 
 int s=a+b; 
 return s; 
} 
void main() 
{ 
 int kq = Tong (12, 3); 
 cout<<“Tong cua 12 va 3: “<<kq; 
} 
44 
Truyền đối số 
Tham số 
Gọi hàm 
5. XÂY DỰNG HÀM CON 
45 
Ví dụ: Viết chương trình nhập số nguyên dương n va ̀ in ra màn 
hình các ước số của n 
Phân tích bài toán: 
 Input: 
 n (tham số) 
 Kiểu dữ liệu: số nguyên dương (int). 
 Output: 
 In ra các ước số của n (dữ liệu trả về của hàm) 
 Xuất ra màn hình Không trả về giá trị (Kiểu void) 
 Xác định tên hàm: Hàm này dùng in ra các ước số của 
n nên có thể đặt là LietKeUocS 
void LietKeUocSo(int n); 
45 
5. XÂY DỰNG HÀM CON 
46 
File khaibao.h 
#include “iostream” 
using namespace std; 
void LietKeUocSo(int n); 
46 
File caidat.cpp 
#include “khaibao.h” 
void LietKeUocSo(int n){ 
 for (int i = 1; i <= n; i++) 
 if (n % i == 0) 
 cout<<i<<“\t”; 
} 
File main.cpp 
#include “khaibao.h” 
void main(){ 
 int n; 
 cout<<"Nhap so nguyen duong n: "; 
 cin>>n; 
 cout<<"Cac uoc so cua “<<n<<“: “; 
 LietKeUocSo(n); 
} 
Ví dụ: Viết chương trình in ra các ước số của n 
5. XÂY DỰNG HÀM CON 
47 
Ví dụ 2: Viết chương trình nhập số nguyên dương n và tính tổng: 
 Sn=1+2+3+ . . .+n ; với n>0 
Phân tích bài toán: 
 Input: 
 n (tham số) 
Kiểu dữ liệu: số nguyên dương (int). 
 Output: 
 Trả về giá trị của S. S là tổng các số nguyên dương 
nên S cũng là số nguyên dương Kiểu trả về của 
hàm là int (hoặc long). 
 Xác định TênHàm: 
 Dùng tính tổng S nên có thể đặt là TongS 
int TongS(int n); 
47 
5. XÂY DỰNG HÀM CON 
48 
File khaibao.h 
#pragma once 
#include 
int TongS(int n); 
48 
File caidat.cpp 
#include “khaibao.h” 
int TongS(int n){ 
 int kq = 0; 
 for (int i = 1; i <= n; i++) 
 kq + = i; 
 return kq; 
} 
File main.cpp 
#include “khaibao.h” 
void main(){ 
 int n, S; 
 cout<<"Nhap vao so nguyen n: "; 
 cin>>n; 
 S = TongS(n); 
 cout<<"Tong tu 1 den n: " <<S; 
} 
Ví dụ 2: Viết chương trình nhập số 
nguyên dương n và tính tổng: 
 Sn=1+2+3+ . . .+n ; với n>0 
5. XÂY DỰNG HÀM CON 
49 
5.3. Tham số là tham chiếu 
 Tham số làm kết quả đầu ra 
 Tham số vừa làm đầu vào và đầu ra 
 Dùng dấu & phía trước tên tham số khi cài đặt hàm 
49 
5. XÂY DỰNG HÀM CON 
50 
Ví dụ: Chương trình hoán vị 2 số nguyên a, b cho trước 
50 
void HoanVi(int &a, int &b) 
{ 
 int tam = a; 
 a = b; 
 b = tam; 
 cout<<"Trong HoanVi: a = “<<a<<“ ;b = “<<b; 
} 
void main(){ 
 int a = 5, b = 21; 
 cout<<"Truoc khi HoanVi: a = “<<a<<“ ; b = “<<b; 
 HoanVi(a, b); 
 cout<<"Sau khi goi HoanVi: a = “<<a<<“ ;b = “<<b; 
} 
5. XÂY DỰNG HÀM CON 
51 
BÀI TẬP 
Viết các chương trình sau bằng phương pháp sử dụng 
hàm con. 
1. Viết chương trình nhập vào 1 số nguyên dương n. 
Tìm và in ra các số nguyên tố nhỏ hơn n. 
2. Viết chương trình nhập 2 số nguyên dương a, b. Tìm 
USCLN và BSCNN của hai số nguyên đó 
3. Viết chương trình nhập số nguyên dương n, tính tổng 
các ước số dương của n. 
 Ví dụ: Nhập n=6 
 Tổng các ước số từ 1 đến n: 1+2+3+6=12. 
51 
52 
 The End. 

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_nang_cao_chuong_1_kien_thuc_co.pdf