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

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 ý.

pdf25 trang | Chia sẻ: thanhle95 | Lượt xem: 512 | Lượt tải: 1download
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
Tài liệu liên quan