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 |
Chia sẻ: thanhle95 | Lượt xem: 495 | 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