1. Trang chủ
  2. » Giáo án - Bài giảng

Slide kỹ thuật lập trình CC++

62 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 230,95 KB

Nội dung

KỸ THUẬT LẬP TRÌNH C/C++ Hàm cấu trúc chương trình Vũ Hải Email: hai.vu@hust.edu.vn Các nội dung       Cấu trúc chương trình Hàm Cách tổ chức chương trình Một số loại biến đặc biệt chương trình Con trỏ hàm Hàm callback Cấu trúc chương trình  Mơ hình hướng chức main F1 F1.1 F1.2 F2 F1.3 F2.1 F2.2 F3 F2.3 F3.1 F3.2 Cấu trúc chương trình  VD: chức chương trình giải PT bậc main Nhập hệ số Tính delta Tính nghiệm Hàm     Khái niệm Phân loại Cấu trúc hàm Các thao tác hàm Khái niệm    Hàm khối câu lệnh thực nhiệm vụ định, gọi cần Mỗi hàm có tên (các hàm C không trùng tên nhau), số tham số, giá trị trả Sử dụng hàm giúp:    Cách khai báo:   Chia nhỏ chương trình thành nhiều tốn Sử dụng lại nhiều chương trình () { Khai báo biến dùng cho hàm Các câu lệnh hàm } Toán tử return dùng để thoát khỏi hàm trả kết 6 Ví dụ  Hàm tính tổng hai số   double sum(double x, double y) { double z = x+y; return z; } int main() { double x = 10, y = sum(2,3); printf("x + y = %g", sum(x,y)); return 0; } Các tham số biến nội giới hạn phạm vi hàm 7 Hàm • Cấu trúc hàm: gồm phần – – Phần đầu (header): lại gồm tên hàm, kiểu giá trị trả (void kiểu DL), danh sách tham số (có thể rỗng) Phần thân (body): khối lệnh chứa lệnh cài đặt cho chức hàm float Delta(float a, float b, float c) HEADER { float d; d = b*b – 4*a*c; return d; BODY } Hàm  Các thao tác với hàm:    Định nghĩa hàm (definition) Khai báo hàm (declaration) Gọi hàm (call) Định nghĩa hàm • • • • • Là phần cài đặt chi tiết cho hàm Mỗi hàm cần có định nghĩa Định nghĩa đặt trước sau hàm main Khơng cho phép đặt định nghĩa hàm lồng định nghĩa hàm khác, kể hàm main Khi định nghĩa hàm cần phải xác định đầy đủ, chi tiết tất thành phần hàm đó, gồm phần đầu phần thân 10 Ví dụ void insertSort(int a[], int N){ printf("Insert Sort\n"); } void quickSort(int a[], int N){ printf("Quick Sort\n"); } int main() { void (*f)(int[], int); int a[] = {3, 2, 4, 5, 1}; //Chọn InsertSort f = insertSort; sort(a, 5, f); //Callback function void sort(int a[], int N, void (*f) (int [], int)){ f(a,N); } //Chọn QuickSort f = quickSort; sort(a, 5, f); printf("Done!"); } 48 Tóm tắt nội dung học     Cấu trúc chức chương trình Hàm thao tác Các cách tổ chức chương trình tệp nhiều tệp Một số loại biến đặc biệt chương trình biến static extern 49 THƯ VIỆN HÀM 50 50 Tổ chức chương trình  Trong C ta tổ chức chương trình theo cách:    Tất phần chương trình nằm tệp Chia phần chương trình nhiều tệp khác Khi có nhiều tệp chương trình, chúng thường tổ chức project Có loại tệp chủ yếu C:   Tệp chương trình nguồn (source file): thường có phần mở rộng “.c”: tệp chủ yếu chứa định nghĩa thành phần liệu hàm Tệp phần đầu (header file): thường có phần mở rộng “.h”, tệp thường chứa khai báo liệu hay hàm 51 Tổ chức chương trình nhiều tệp • Mục đích việc tổ chức chương trình nhiều tệp: – – – Hỗ trợ việc phân chia chương trình thành modul nhỏ hơn, modul cài đặt tệp Hỗ trợ việc phát triển chương trình theo nhóm gồm nhiều người lập trình, cần phải chia chương trình làm nhiều modul, người cần viết modul đó; sau đến cuối cần phải lắp ghép tất modul lại với để thành chương trình hồn chỉnh Hỗ trợ việc tái sử dụng thành phần chương trình cách thuận tiện, qua việc xây dựng tệp thư viện 52 Thư viện hàm    Một chương trình chia nhỏ làm nhiều file, file chứa nhóm hàm liên quan tới phần chương trình Một số hàm dùng nhiều chương trình khác  thư viện hàm Một thư viện hàm gồm phần:    File header có h chứa prototype hàm dùng thư viện File mã nguồn có c chứa nội dung hàm, file obj, lib dịch dạng tương ứng Dùng thư viện hàm file mã nguồn:    53 #include /* đường dẫn mặc định */ #include "ten_file.h" /* thư mục với file dịch */ Dẫn hướng #include có tác dụng chèn nội dung file khai báo vào file dịch vị trí xuất 53 Lưu ý với tạo sử dụng file h  Trong file abcd.h  Để tránh lỗi bị #include nhiều lần, thêm vào đầu cuối   Các biến toàn cục phải khai báo file c, muốn export file h khai báo thêm extern:   #ifndef ABCD_H #define ABCD_H /* Nội dung file abcd.h */ #endif extern int bien_toan_cuc; Sử dụng file abcd.h   54 #include "abcd.h" #include /* h thư mục */ /* h thư mục thư viện */ 54 Ví dụ 1: Thư viện tính diện tích hình  dientich.h   #ifndef DIENTICH_H #define DIENTICH_H extern const double PI; double dt_tron(double r); double dt_elip(double r1, double r2); double dt_vuong(double l); double dt_chu_nhat(double l1, double l2); #endif dientich.c const double PI = 3.1415; double dt_tron(double r) { return r*r*PI; } double dt_elip(double r1, double r2) { return r1*r2*PI; } double dt_vuong(double l) { return l*l; } double dt_chu_nhat(double l1, double l2) { return l1*l2; } EE3490: Kỹ thuật lập trình – HK1 2015/2016 55 55  Ví dụ  Chương trình tính tổng dãy số, tìm USCLN tổng Chương trình tổ chức tệp:    main.c: chứa hàm main(), chứa lời gọi đến hàm tính tổng dãy số tính USCLN myLib.c: chứa định nghĩa hàm tính tổng dãy số tính USCLN myLib.h: chứa khai báo cho hàm tính tổng dãy số tính USCLN 56 Tệp main.c #include #include #include "myLib.h“ int main(int argc, char *argv[]) { //float sum(float [], int); float x[N] = {1,3,5,7,9,11}; float y[N] = {2,4,6,8,10,12}; float s1 = sum (x,N); float s2 = sum (y,N); printf("Tong cua day so =%.0f\n",s1); printf("Tong cua day so =%.0f\n",s2); printf("USCLN cua tong day = %d\n", uscln((int)s1,(int)s2)); system("PAUSE"); } 57 Tệp myLib.c //#include "myLib.h“ //extern const int N = 6; int uscln(int a, int b){ while(a!=b) if(a>b) a -= b; else b -= a; return a; } float sum(float a[], int n){ int i; float sf=0; for (i=0;i

Ngày đăng: 18/04/2021, 11:21

TỪ KHÓA LIÊN QUAN

w