intTypePromotion=1

Bài giảng Kỹ thuật lập trình: Chương II - Lưu Hồng Việt

Chia sẻ: Nguyễn Thị Ngọc Lựu | Ngày: | Loại File: PDF | Số trang:74

0
103
lượt xem
14
download

Bài giảng Kỹ thuật lập trình: Chương II - Lưu Hồng Việt

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Kỹ thuật lập trình - Chương II: Các yếu tố cơ bản của C và C++, trình bày các nội dung về tổ chức chương trình C/C++, bộ tiền xử lý, biến và các kiểu dữ liệu cơ bản, các kiểu dữ liệu dẫn xuất trực tiếp, định nghĩa kiểu dữ liệu mới, điều khiển chương trình: phân nhánh, điều khiển chương trình: vòng lặp, một số lệnh điều khiển chương trình khác. Đây là tài liệu học tập, tham khảo cho sinh viên và giảng viên ngành Kỹ thuật lập trình.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương II - Lưu Hồng Việt

  1. Kỹ thuật lập trình Chương 2: Các yếu tố cơ bản của C và C++ 0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 1010011000110010010010 stop() 1100101100100010000010 1100101100100010000010 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; y = A*x 1010011000110010010010 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 start() 0101010100101010100101 0101010100101010100101 stop() 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 8/24/2009
  2. Nội dung chương 2 2.1 Tổ chức chương trình C/C++ 2.2 Bộ tiền xử lý 2.3 Biến và các kiểu dữ liệu cơ bản 2.4 Các kiểu dữ liệu dẫn xuất trực tiếp 2.5 Định nghĩa kiểu dữ liệu mới 2.6 Điều khiển chương trình: phân nhánh 2.7 Điều khiển chương trình: vòng lặp © 2004, HOÀNG MINH SƠN 2.8 Một số lệnh ₫iều khiển chương trình khác Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 2
  3. 2.1 Tổ chức chương trình C/C++ Cấu trúc và các phần tử cơ bản của một chương trình viết trên C/C++ Qui trình tạo ra một chương trình chạy ₫ược: — Vấn ₫ề tạo dự án — Qui tắc soạn thảo mã nguồn — Biên dịch từng phần và sửa các loại lỗi biên dịch — Liên kết và sử dụng thư viện, sửa lỗi liên kết — Chạy thử và gỡ rối (Debug) Sơ lược về tổ chức bộ nhớ © 2004, HOÀNG MINH SƠN Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 3
  4. 2.1 Tổ chức chương trình C/C++ Khai báo thư viện và # Tiền xử lý macro Khai báo biến, hàm ... Khai báo hàm ₫ược sử dụng trong CT chính void main() { Chương trình (CT) Chương trình chính Thân hàm chính © 2004, HOÀNG MINH SƠN } Định nghĩa thân hàm Định nghĩa hàm (thân hàm) ₫ã khai báo Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 4
  5. Chương trình tính giai thừa: Phiên bản C #include #include int factorial(int); void main() { char c = 'N'; int N = 1; int kq; do { printf(“\nEnter a number > 0:"); /* writing on the screen */ scanf("%d",&N); /* reading from keyboard to N */ kq = factorial(N); /* calling function with argument N */ printf(“\nFactorial of %d is %d", N, kq); /*write result on screen */ printf(“\nPress 'Y' to continue or any other key to stop"); c = getch(); /* reading a character from keyboard*/ } while (c=='y' || c=='Y'); /* checking loop condition */ © 2004, HOÀNG MINH SƠN } int factorial(int n) { int kq = 1; while (n > 1) kq *= n--; return kq; } Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 5
  6. Chương trình tính giai thừa: Phiên bản C++ #include #include int factorial(int); void main() { char c = 'N'; int N = 1; do { cout 0:“ // writing on the screen cin >> N; // reading from keyboard to N int kq = factorial(N); // calling function with argument cout
  7. Tạo dự án 1 3 4 2 © 2004, HOÀNG MINH SƠN Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 7
  8. Bổ sung file mã nguồn 5 và soạn thảo Các công cụ biên dịch và liên kết Cửa sổ soạn thảo Cửa sổ bàn làm việc/ dự án © 2004, HOÀNG MINH SƠN Cửa sổ thông báo kết quả (biên dịch,…) Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 8
  9. Qui tắc soạn thảo mã nguồn 1. Tên biến, tên hàm, tên kiểu mới: Tránh sử dụng các từ khóa và tên kiểu cơ sở Các ký tự dùng ₫ược: ‘A’..’Z’, ‘a’..’z’, ‘0’..’9’, ‘_’ Phân biệt giữa chữ hoa và chữ thường: n khác N Ngắn nhưng ₫ủ khả năng phân biệt, gợi nhớ ₫ể nhận biết Sử dụng tiếng Anh hoặc tiếng Việt không dấu (kể cả dòng chú thích) 2. Sau mỗi câu lệnh có chấm phảy; 3. Đoạn { … } ₫ược coi là nhóm lệnh, không có dấu chấm phảy sau ₫ó, trừ trường hợp khai báo kiểu © 2004, HOÀNG MINH SƠN 4. Cấu trúc mã nguồn theo kiểu phân cấp => dễ ₫ọc 5. Bổ sung chú thích ₫ầy ₫ủ, hợp lý (/* …*/ hoặc //) 6. Chia một file lớn thành nhiều file nhỏ Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 9
  10. Các từ khóa trong C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while © 2004, HOÀNG MINH SƠN Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 10
  11. Từ khóa trong C++ asm auto bool break case catch char class const const_cast continue default delete else extern do enum false double explicit float dynamic_cast export for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template © 2004, HOÀNG MINH SƠN this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 11
  12. Biên dịch (compile) Biên dịch từng file nguồn riêng biệt (*.c: C compiler, *.cpp: C++ compiler), kết quả => *.obj Trong Visual C++: Gọi Compile (Ctrl + F7) ₫ể biên dịch riêng rẽ hoặc Build (F7) ₫ể kết hợp biên dịch và liên kết cho toàn bộ dự án Các kiểu lỗi biên dịch (compile error): — Lỗi cú pháp: Sử dụng tên sai qui ₫ịnh hoặc chưa khai báo, thiếu dấu chấm phảy ;, dấu ₫óng } — Lỗi kiểu: Các số hạng trong biểu thức không tương thích kiểu, gọi hàm với tham số sai kiểu — … © 2004, HOÀNG MINH SƠN Các kiểu cảnh báo biên dịch (warning): — Tự ₫ộng chuyển ₫ổi kiểu làm mất chính xác — Hàm khai báo có kiểu trả về nhưng không trả về — Sử dụng dấu = trong trường hợp nghi vấn là so sánh == — … Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 12
  13. Liên kết (link) MyProg.obj MyLib1.obj MyLib2.obj xx.obj yy.lib MyProg.exe Liên kết là quá trình ghép nhiều file ₫ích (*.obj, *.lib) ₫ể tạo ra chương trình chạy cuối cùng *.exe Trong Visual C++: Gọi Build (F7) Lỗi liên kết có thể là do: © 2004, HOÀNG MINH SƠN — Sử dụng hàm nhưng không có ₫ịnh nghĩa hàm — Biến hoặc hàm ₫ược ₫ịnh nghĩa nhiều lần — … Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 13
  14. Chạy thử và gỡ rối (debug) Chạy thử trong Visual C++: Execute hoặc Ctrl+F5 Tìm lỗi: — Lỗi khi chạy là lỗi thuộc về phương pháp, tư duy, thuật toán, không phải về cú pháp — Lỗi khi chạy bình thường không ₫ược báo — Lỗi khi chạy rất khó phát hiện, vì thế trong ₫a số trường hợp cần tiến hành debug. Chạy Debug trong Visual C++: — Chạy tới chỗ ₫ặt cursor: Ctrl+F10 — Chạy từng dòng lệnh: F10 © 2004, HOÀNG MINH SƠN — Chạy vào trong hàm: F11 — Chạy tiếp bình thường: F5 — Xem kết quả dưới cửa sổ Output hoặc gọi QuickWatch Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 14
  15. Tổ chức bộ nhớ Hệ điều hành Các CT khác Mã chương trình Đỉnh ngăn xếp Dữ liệu toàn cục SP n Matran_A Vùng nhớ tự do f Ngăn xếp k © 2004, HOÀNG MINH SƠN (tham biến, biến i cục bộ) count a Vùng nhớ tự do Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 15
  16. 2.2 Bộ tiền xử lý Bộ tiền xử lý là một phần chương trình ₫ược soạn thảo mô tả các chỉ thị như bộ xử lý macro thực hiện trước khi chương trình biên dịch bắt ₫ầu thực thi Tăng tính linh hoạt trong việc viết và biên dịch chương trình Ví dụ: #define NAME string #define SQR (number) ((number) * (number)) #define ABORT {(void) printf (“Abort”); exit(1); } © 2004, HOÀNG MINH SƠN #ifdef SYMBOL …. #endif Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 16
  17. 2.2.1 Chỉ thị #define Chỉ thị #define cho phép chương trình ₫ịnh nghĩa một macro thay thế ₫ơn giản. Cú pháp: #define NAME string Ví dụ: #define ARRAY_MAX 10 int array[ARRAY_MAX]; Chú ý: — Theo qui ước hầu hết tên các hằng là tất cả chữ hoa — Đóng ngoặc ₫ơn cho tất cả các hằng chứa nhiều hơn một số ₫ơn. Ví dụ: #define LENGTH (3+5) thay vì #define LENGTH 3+5 © 2004, HOÀNG MINH SƠN — Luôn ₫óng các macro nhiều câu lệnh trong các ngoặc móc nhọn { }. Ví dụ: #define ABORT {(void) printf(“Aborting”); exit(1);} thay vì #define ABORT (void) printf(“Aborting”); exit(1); Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 17
  18. 2.2.2 Tham số hoá Macro Ví dụ: #define SQR (number) (number * number) size = SQR(5); /*size = (5 * 5)*/ size = SQR (length + width) ; /* size = (length + width * length + width) */ Chú ý: — Luôn ₫ặt ngoặc ₫ơn bao ngoài các tham số trong một macro tham số hoá. Viết lại macro trên: #define SQR (number) ((number) * (number)) © 2004, HOÀNG MINH SƠN — Cẩn thận với các phép toán rút gọn khi sử dụng macro. Ví dụ: value = 1; square = SQR (value++) ; /* sai */ /* square = ((value++) * (value++) )*/ Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 18
  19. 2.2.3 Chỉ thị #ifdef , #endif Ví dụ: #ifdef SYMBOL /* thuc hien ma lenh neu thoa man*/ #endif Muốn kích hoạt phần thực hiện chương trình này nhập câu lệnh từ ₫ầu chương trình như sau: #define SYMBOL Chỉ thị ₫ồng hành #else và #ifndef Ví dụ: #ifdef DEBUG (void) printf(“Debugging version\n”); © 2004, HOÀNG MINH SƠN #else (void) printf(“Production version\n”); #endif Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 19
  20. 2.2.4 Chỉ thị #include Chỉ thị #include chỉ cho bộ tiền xử lý nhận nội dung của tệp khác và nhập chúng vào chương trình. Ví dụ: #include /* Tệp chứa ở trong hệ thống chuẩn */ #include “file2.h” /* Tệp chứa ở trong thư mục ₫ang phát triển chương trình */ Để tránh trường hợp nhập nội dung một tệp vào chương trình nhiều hơn một lần do chỉ thị nhập ₫ã ẩn © 2004, HOÀNG MINH SƠN chứa trong chính các nội dung nhập. Ví dụ: #include “module_a.h” #include “module_b.h” Chương 2: Các yếu tố cơ bản của C và C++ © AC - HUT 20
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2