Bài giảng Kỹ thuật lập trình - Chương 2: Cấu trúc và các thành phần chương trình C - Lê Thành Sách

Nội dung
n Chương trình C đơn giản
n Phong cách lập trình
n Rèn luyện việc xuất ra màn hình
n Đọc dữ liệu từ bàn phím
n Xử lý đơn giản 
pdf 36 trang xuanthi 27/12/2022 2920
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 - Chương 2: Cấu trúc và các thành phần chương trình C - Lê Thành Sách", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_2_cau_truc_va_cac_thanh.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 2: Cấu trúc và các thành phần chương trình C - Lê Thành Sách

  1. Nội dung n Chương trình C đơn giản n Phong cách lập trình n Rèn luyện việc xuất ra màn hình n Đọc dữ liệu từ bàn phím n Xử lý đơn giản Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 2 © 2016
  2. Chương trình C đơn giản Các thành phần n Khai báo thư viện sẽ được sử dụng #include n Chỉ thị #include: #include n Hàm main có sử dụng (gọi) đến hai hàm printf và void main(){ system. printf(" "); n Hàm printf được khai báo printf(" "); trong thư viện stdio, cụ thể là tập tin system("pause"); } n Hàm system được khai báo trong thư viện stdlib, cụ thể là tập tin n Do đó, cần dùng chỉ thị #include với hai thư viện nói trên để khi biên dịch không báo lỗi Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 4 © 2016
  3. Chương trình C đơn giản Các thành phần n Lệnh được thực thi đầu tiên n Lệnh đầu tiên ngay sau hàm main() n Mỗi chương trình viết bằng C phải có một hàm có tên main int main(){ } Nơi này xác định kiểu trả về của hàm (main) int: Hàm main trả về mã trạng thái: 0 = không có lỗi; 1 = có lỗi EXIT_SUCCESS = 0; EXIT_FAILURE = 1 Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 6 © 2016
  4. Phong cách lập trình n Chương trình cũng như một bài văn trong ngôn ngữ tự nhiên. 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. n Trong các dự án lớn, phong cách lập trình là rất quan trọng nhằm n Dễ dàng phối hợp giữa các thành viên phát triển n Dễ dàng phát hiện sai sót n Dễ dàng bảo trì và nâng cấp Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 8 © 2016
  5. Phong cách lập trình Các gợi ý n Về quy cách đặt tên: n Hàm n Bắt đầu bởi động từ (verb), vì hàm là đơn vị xử lý (i.e., thực thi hành động) n 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() Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 10 © 2016
  6. Phong cách lập trình Các gợi ý n Về quy cách đặt tên: n Biến n Thường bắt đầu bởi danh từ (noun) n Tất cả các ký tự trong tên đều là chữ thường n Nối các từ với nhau bởi dấu gạch dưới, “_” n Đưa đơn vị vào tên nếu có thể Ví dụ: unit32 timeout_msec; Time time_of_error Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 12 © 2016
  7. Phong cách lập trình Các gợi ý n Về quy cách đặt tên: n Biến toàn cục n Prefix với “g_”, để dể phân biệt trong code Ví dụ: Logger g_logger; Logger g_logger_ptr; n Hằng toàn cục n Sử dụng toàn bộ chữ hoa Ví dụ: const int A_GLOBAL_CONSTANT = 5; n 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 Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 14 © 2016
  8. Dữ liệu và kết xuất trong 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! Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 16 © 2016
  9. Dữ liệu và kết xuất trong C n Ký tự điều khiển #include #include n \n (newline) n \t (tab) void main(){ n \v (vertical tab) printf("%d\n", 123); printf("%5d\n", 123); n \f (new page) printf("%05d\n", 123); n \b (backspace) system("pause"); n \r (carriage return) } n \n (newline) Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 18 © 2016
  10. Dữ liệu và kết xuất trong C n Kiểu số thực chấm động #include #include n Độ chính xác đơn: tên kiểu “float” void main(){ n Độ chính xác kép: tên kiểu printf("%f\n", 123.456); “double” printf("%10.2f\n", 123.456); printf("%010.2f\n", 123.456); n Sẽ nói sâu hơn trong system("pause"); chương sau. } n Giá trị ghi ra trong code (literal constant): n Ví dụ: float: 15.5f double: 15.5 Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 20 © 2016
  11. Dữ liệu và kết xuất trong C n Kiểu ký tự #include #include n Tên kiểu: “char”, sẽ nói sâu hơn trong chương sau. void main(){ n Giá trị ghi ra trong code printf("%c\n", 'A'); (literal constant): printf("%3c\n", 'A'); printf("%03c\n", 'A'); n Ví dụ: ‘A’, ‘a’, etc. system("pause"); n Sử dụng đặc tả “%c” trong } printf như ví dụ bên n Câu hỏi: “%3c” trong hình bên nghĩa là gì? n Câu hỏi: “%03c” trong hình bên nghĩa là gì? Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 22 © 2016
  12. Dữ liệu và kết xuất trong C n Tổng kết hàm printf Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 24 © 2016
  13. Dữ liệu và kết xuất trong C Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 26 © 2016
  14. Nhập liệu trong C n Hàm thư viện n scanf n 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 vùng nhớ tương ứng với những kiểu mong muốn. Dùng dấu phẩy (,) để phân cách các địa chỉ nếu có nhiều hơn 1 Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 28 © 2016
  15. Nhập liệu trong C n Kiểu số nguyên n Sử dụng đặc tả “%d” trong scanf như ví dụ sau. Cửa sổ ban đầu: #include #include void main(){ int x; printf("%s", "Please enter x: "); scanf("%d", &x); printf("%s %d\n", "x =", x); system("pause"); } (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: Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 30 © 2016
  16. Nhập liệu trong C n Chương trình đọc hai số nguyên #include #include void main(){ int x; int y; printf("%s", "Please enter x: "); scanf("%d", &x); printf("%s", "Please enter y: "); scanf("%d", &y); printf("%s %d\n", "x =", x); printf("%s %d\n", "y =", y); system("pause"); } Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 32 © 2016
  17. Nhập liệu trong C n Bảng các đặc tả đọc dữ liệu theo kiểu dữ liệu Kiểu Đặc tả đọc dữ liệu trong hàm scanf int %d %u (số không dấu, unsigned int) float %f, %e, %E, %g, %G double %lf, %le, %lE, %lg, %lG char %c string %s Xem chi tiết: Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 34 © 2016
  18. Xử lý đơn giản n Dùng thư viện toán học, cần chèn tập tin n sqrt(.): tính căn bậc hai của giá trị được truyền vào và trả về kết quả #include #include #include void main(){ float x, y; printf("%s", "Please enter coordinates x and y: "); scanf("%f%f", &x, &y); printf("(x,y) = (%5.2f,%5.2f)\n", x, y); printf("Distance to the origin = %5.2f\n", sqrt(x*x + y*y)); system("pause"); } Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 36 © 2016