Chương II MỘT SỐ VẤN ĐỀ TRONG KỸ THUẬT LẬP TRÌNH (6LT – 2BT) KTLT-2.1 Chương II Tổ chức chương trình Biến cục bộ/Biến toàn cục Cấu trúc dữ liệu động Cấp phát tĩnh và cấp phát đợng KTLT-2.2 2.1 Tở chức CT • Khi giải quyết BT, theo phương pháp tiếp cận cấu trúc, BT được phân chia thành các BT và các CT sẽ đảm nhiệm Quá trình phân rã cứ tiếp tục đến mức đủ chi tiết • Mọi NNLT đều cung cấp phương tiện để tổ chức chương trình • Gọi là CT để phân biệt với CT ở mức ngoài (main) được gọi thực hiện bởi ND • CT có cấu trúc giớng main song được gọi và có thể gọi các CT khác KTLT-2.3 CT (tiếp) • CT thường gờm loại tùy theo cách sử dụng: – CT Hàm – CT Thủ tục • CT Hàm là CT dùng để thực hiện tính toán và trả về giá trị của kiểu DL hợp lệ qui định bởi NNLT đó • CT thủ tục thực hiện nhiệm vụ phức tạp (không nhất thiết là tính toán) và không trả về kết quả nào • Trong C khơng phân biệt khái niệm này Tuy nhiên vẫn được dùng theo phong cách chung KTLT-2.4 Thí dụ CT (tiếp) • CT Hàm C int GT(int n) { if ( n==0) return 1; else return n * GT(n-1); } • CT thủ tục C void nhapmang(Mang V, int n) {int i; for (i=0;i Cú pháp, ngữ nghĩa của Th/sớ thực!!! • TD: Minh họa số ví du • Truyền theo tên (macro) • Trong NN C chỉ có kiểu truyền là theo trị Tuy nhiên LTV vẫn có thể dùng thủ thuật để truyền theo địa chỉ (xem phần sau) KTLT-2.9 Tham số truyền trị #include #include swap (int a, int b); { int temp = a; a = b; b= temp); } main() { int c = 5; int d = 7; clrscr(); swap (c,d); printf("\n c= %d d=%d",c,d); getch(); } Kết quả in c=5 d=7 KTLT-2.10 //Cộng hai ma trận void AddMatrix(int *A,int *B,int*C,int M,int N) { for(int I=0;I