Phong cách lập trình
 Chương trình cũng như một bài văn trong ngôn ngữ tự
nhiên.
 Do đó, cần được viết sao cho dễ đọc, dễ hiểu, và dễ phát
hiện các sai sót.
 Trong các dự án lớn, phong cách lập trình là rất quan trọng
nhằm
 Dễ dàng phối hợp giữa các thành viên phát triển
 Dễ dàng phát hiện sai sót
 Dễ dàng bảo trì và nâng cấp
Kỹ thuật lập trình
Chương 02: Cấu trúc và thành phần chương trình C++ 20
Phong cách lập trình
 Danh sách các chủ đề có thể xem chi tiết ở những trang sau
 Sinh viên cần rèn luyện phong cách trong suốt quá trình
học, thông qua thực hành.
 Tất cả các bài nộp cho giảng viên xem phải tuân thủ hầu hết
các gợi ý.
                
              
                                            
                                
            
                       
            
                 25 trang
25 trang | 
Chia sẻ: thanhle95 | Lượt xem: 693 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Bài giảng Kỹ thuật lập trình - Chương 2: Cấu trúc và thành phần của chương trình C/C++ - Trần Quang, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Trần Quang
© 2016
Kỹ thuật lập trình
1
Chương 02: Cấu trúc và thành phần chương trình C++
Chương 2
Cấu trúc và thành phần
của chương trình C/C++
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
2
Chương 02: Cấu trúc và thành phần chương trình C++
Nội dung
 Tìm hiểu một chương trình C/C++ đơn giản
 Xuất dữ liệu ra màn hình
 Đọc dữ liệu từ bàn phím
 Các xử lý đơn giản
 Phong cách lập trình
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
3
Chương 02: Cấu trúc và thành phần chương trình C++
Chương trình C đơn giản
/* This is a simple program.
Ex1: Print out "Hello world" 
*/
#include 
#include 
void main() {
printf ("Hello world ...\n");
// system("pause") is defined in 
system("pause");
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
4
Chương 02: Cấu trúc và thành phần chương trình C++
Chỉ thị #include
 Khai báo thư viện sẽ được sử dụng bằng chỉ thị #include:
 Trong chương trình có sử dụng hai hàm printf và system.
 Hàm printf được khai báo trong thư viện stdio 
 #include 
 Hàm system được khai báo trong thư viện stdlib
 #include 
#include 
#include 
void main(){
printf("Hello world...\n"); 
system("pause"); 
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
5
Chương 02: Cấu trúc và thành phần chương trình C++
Hàm main()
 Mỗi chương trình C đều phải có một hàm main()
Chú ý: chữ main viết toàn chữ thường
 Chương trình sẽ bắt đầu chạy từ hàm này.
void main()
{
// Thân hàm
}
Dấu “{“ đánh dấu bắt đầu phần thân hàm main
Dấu “}“ đánh dấu điểm kết thúc phần thân hàm main
Từ đi trước chữ main xác định kiểu kết quả trả về
void : hàm main không trả kết quả gì về cả
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
6
Chương 02: Cấu trúc và thành phần chương trình C++
Chú thích
 Chú thích được chèn vào nhằm giải thích, ghi chú, đánh 
dấu, làm tài liệu cho phần tử trong chương trình C
 Hai dạng chú thích:
 Chú thích trên nhiều dòng:
/* chú thích
*/
 Chú thích trên một dòng:
printf ("Hello"); // từ đây đến cuối dòng là chú thích
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
7
Chương 02: Cấu trúc và thành phần chương trình C++
Thư viện stdio
 Thư viện nhập xuất chuẩn trong C là stdio (Standard 
Input/Output)
Do đó ta thường khai báo thư viện này ở đầu chương trình
#include 
 Thư viện này có cung cấp hai hàm nhập và xuất dữ liệu có 
định dạng:
 printf(): hàm xuất có định dạng
 scanf(): hàm nhập có định dạng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
8
Chương 02: Cấu trúc và thành phần chương trình C++
Lệnh printf
 Cú pháp:
printf("", );
trong chuỗi định dạng chứa chỉ thị định dạng có cấu trúc
 % [flags] [width] [.precision] [length] specifier
 specifier là đặc tả cho kiểu dữ liệu:
d,i Số nguyên thập phân có dấu
f, g Số dấu chấm động 
e Số dấu chấm động (ký hiệu số mũ)
x Số nguyên hệ 16
o Số nguyên hệ 8
c Ký tự đơn
s Chuỗi ký tự
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
9
Chương 02: Cấu trúc và thành phần chương trình C++
Lệnh printf
Ví dụ:
printf("%d\n", 123); 
printf("%5d\n", 123); 
printf("%05d\n", 123);
printf("%f\n", 123.456); 
printf("%10.2f\n", 123.456); 
printf("%010.2f\n", 123.456); 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
10
Chương 02: Cấu trúc và thành phần chương trình C++
Lệnh printf
printf("%c\n", 'A'); 
printf("%3c\n",'b'); 
printf("%03c\n", '#');
printf("%s\n","1234567890"); 
printf("%s\n","DHBK"); 
printf("%9s\n","DHBK"); 
printf("%09s\n","DHBK"); 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
11
Chương 02: Cấu trúc và thành phần chương trình C++
Một số ký tự điều khiển
Escape 
sequence
Meaning
Escape 
sequence
Meaning
\\ \ character \n Newline
\' ' character \r Carriage return
\" " character \t Horizontal tab
\? ? character \v Vertical tab
\a Alert or bell \ooo Octal number of one to three digits
\b Backspace
\xhh . . .
Hexadecimal number of one or 
more digits\f Form feed
Escape sequence
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
12
Chương 02: Cấu trúc và thành phần chương trình C++
Ví dụ:
#include 
#include 
void main() {
int a=4, b=5;
printf("Ket qua: %d + %d = %d \n",a, b, a+b);
getch();
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
13
Chương 02: Cấu trúc và thành phần chương trình C++
Xuất dữ liệu trong C++
#include 
void main() {
std::cout << "This is a simple C++ program!" << std::endl;
system("pause");
}
_______________________________________
#include 
using namespace std;
void main() {
cout << "This is a simple C++ program!" << endl;
system("pause");
}
13CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
14
Chương 02: Cấu trúc và thành phần chương trình C++
Nhập dữ liệu trong C
 Nguyên tắc
 Trong C, khi đọc dữ liệu từ bàn phím, giá trị đọc được lưu 
vào vùng nhớ có kiểu tương thích với kiểu ghi trong hàm đọc
Sinh viên tạm thời chấp nhận hai khái niệm sau:
1. Vùng nhớ được đặt tên (còn gọi là biến)
Ví dụ:
int x;
2. Cách lấy địa chỉ của vùng nhớ
Ví dụ:
&x 
(sử dụng dấu & trước tên của vùng nhớ)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
15
Chương 02: Cấu trúc và thành phần chương trình C++
Hàm scanf()
 Hàm scanf có trong thư viện stdio
 Cú pháp:
scanf ("" , )
Phần đặc tả những 
kiểu mong muốn đọc
Phần liệt kê địa chỉ của các biến tương ứng 
với những kiểu mong muốn
Dùng dấu phẩy (,) để phân cách nếu có 
nhiều địa chỉ biến
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
16
Chương 02: Cấu trúc và thành phần chương trình C++
Hàm scanf()
Ví dụ: 
int x;
printf("Please enter x: ");
scanf("%d", &x);
printf("x = %d\n", x);
Cửa sổ ban đầu:
chương trình chờ người dùng 
nhập vào một số nguyên
Cửa sổ sau khi nhập giá trị 123 
và nhấn phím ENTER:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
17
Chương 02: Cấu trúc và thành phần chương trình C++
Nhập dữ liệu trong C++
#include 
using namespace std;
void main(){
int a;
cout << "Nhap a: ";
cin >> a;
cout << "a = " << a << endl;
system("pause");
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
18
Chương 02: Cấu trúc và thành phần chương trình C++
Xử lý đơn giản
Viết chương trình đọc hai số x và y là tọa độ trong không gian 2D. 
Sau đó tính và in ra khoảng cách từ tâm hệ trục tọa độ đến điểm (x,y)
#include 
#include 
using namespace std;
void main(){
float x, y;
cout << "Please enter coordinates x and y: "; 
cin >> x >> y;
cout <<"(x,y) = (" << x << "," << y << ")" <<endl;
cout <<"Distance to the origin = " << sqrt(x*x + y*y) << endl;
system("pause");
}
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
19
Chương 02: Cấu trúc và thành phần chương trình C++
Phong cách lập trình
 Chương trình cũng như một bài văn trong ngôn ngữ tự
nhiên.
 Do đó, cần được viết sao cho dễ đọc, dễ hiểu, và dễ phát
hiện các sai sót.
 Trong các dự án lớn, phong cách lập trình là rất quan trọng
nhằm
 Dễ dàng phối hợp giữa các thành viên phát triển
 Dễ dàng phát hiện sai sót
 Dễ dàng bảo trì và nâng cấp
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
20
Chương 02: Cấu trúc và thành phần chương trình C++
Phong cách lập trình
 Danh sách các chủ đề có thể xem chi tiết ở những trang sau
 Sinh viên cần rèn luyện phong cách trong suốt quá trình
học, thông qua thực hành.
 Tất cả các bài nộp cho giảng viên xem phải tuân thủ hầu hết
các gợi ý.
 Xem thêm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
21
Chương 02: Cấu trúc và thành phần chương trình C++
Phong cách lập trình
 Về quy cách đặt tên hàm:
 Bắt đầu bởi động từ (verb), vì hàm là đơn vị xử lý (i.e., thực thi hành
động)
 Tên phải nêu bật tính năng của hàm. Ví dụ:
Nên dùng: check_for_errors()
Thay cho: error_checking() hay dump_data_to_file()
 Nên sử dụng “suffix” hay “prefix” sau trong các trường cụ thể tăng
ngữ nghĩa
 Prefixes
 is kiểm tra xem một điều kiện nào đó có thỏa hay không
 get lấy giá trị
 set gán giá trị
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
22
Chương 02: Cấu trúc và thành phần chương trình C++
Phong cách lập trình
 Về quy cách đặt tên biến:
 Thường bắt đầu bởi danh từ (noun)
 Tất cả các ký tự trong tên đều là chữ thường
 Nối các từ với nhau bởi dấu gạch dưới, “_”
 Đưa đơn vị vào tên nếu có thể. Ví dụ:
unit32 timeout_msec;
Time time_of_error;
 Biến kiểu pointer
 Đặt dấu * liền sát tên biến
 Suffix với “ptr” nếu có thể
Ví dụ:
char *name;
Student *student_ptr;
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
23
Chương 02: Cấu trúc và thành phần chương trình C++
Phong cách lập trình
 Về quy cách đặt tên:
 Biến toàn cục
 Prefix với “g_”, để dể phân biệt trong code
Ví dụ:
Logger g_logger;
Logger g_logger_ptr;
 Hằng toàn cục
 Sử dụng toàn bộ chữ hoa
Ví dụ:
const int A_GLOBAL_CONSTANT = 5;
 Xem chi tiết trong trang chỉ dẫn trước, và luyện tập đến
cuối chương trình học
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
24
Chương 02: Cấu trúc và thành phần chương trình C++
Rèn luyện phong cách lập trình
#include 
#include 
void main(){
printf("%d\n", 123); 
printf("%5d\n", 123); 
printf("%05d\n", 123); 
system("pause");
}
Sử dụng TAB để canh lề code
Nên!
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trần Quang
© 2016
Kỹ thuật lập trình
25
Chương 02: Cấu trúc và thành phần chương trình C++
Rèn luyện phong cách lập trình
#include 
#include 
void main(){
printf("%d\n", 123); 
printf("%5d\n", 123); 
printf("%05d\n", 123); 
system("pause");
}
#include 
#include 
void main(){
printf("%d\n", 123); 
printf("%5d\n", 123); 
printf("%05d\n", 123); 
system("pause");
}
Không nên!
CuuDuongThanCong.com https://fb.com/tailieudientucntt