• Task 10 [ Lập trình C cơ bản ]

    Xem video về hàm, ghi lại những hiểu biết về hàm vào blog
    1
    Tại sao cần sử dụng hàm?
    - Các hàm được sử dụng để rút gọn cho một chuỗi các chỉ thị được thực hiện nhiều lần.
    -hàm  dễ viết và dễ hiểu.
    -Việc gỡ rối chương trình cũng dễ dàng hơn khi cấu trúc chương trình rõ ràng với hình thức lập trình theo module.
    -Các chương trình chứa các hàm cũng dễ bảo trì hơn, bởi vì những sửa đổi, nếu yêu cầu, có thể được giới hạn trong các hàm của chương trình. 3) Cấu trúc viết hàm.
    -Cú pháp tổng quát của một hàm trong C là:
             type_specifier function_name (arguments)
        {
            body of the function
            return statement
        }
    +type_specifier xác định kiểu dữ liệu của giá trị sẽ được trả về bởi hàm. Nếu không có kiểu được đưa ra, hàm cho rằng trả về một kết quả số nguyên.
    +Các tham số xuất hiện trong cặp dấu ngoặc () được gọi là tham số hình thức hoặc đối số hình thức.
    2.Các đối số của một hàm:
    - Khi một hàm được gọi, quyền điều khiển sẽ được chuyển đến cho nó, ở đó các đối số hình thức được thay thế bởi các đối số thực. Sau đó hàm được thực thi và khi bắt gặp câu lệnh return, nó sẽ chuyển quyền điều khiển cho chương trình gọi nó.
    *Có 2 cách khai báo :
    +squarer(int x)
    /* x được định nghĩa cùng với kiểu dữ liệu trong cặp dấu ngoặc ()*/
    +squarer(x)
    int x;
    /*  x được đặt trong cặp dấu ngoặc (), và kiểu của nó được khai báo ngay sau tên hàm */
    chú ý:x phải được định nghĩa ngay sau tên hàm, trước khối lệnh.
    3. Sự trả về của 1 hàm:
    *Lệnh return:
    +Ngay lập tức trả điều khiển từ hàm về chương trình gọi
    +Bất kì cái gì bên trong cặp dấu ngoặc () theo sau return được trả về như là một giá trị
    +Lệnh return có thể sử 1 trong các cách sau:
    return;
    return(hằng);
    return(biến);
    return(biểu thức);
    return(câu lệnh đánh giá); ví dụ: return(a>b?a:b);
    4.Kiểu của một hàm.
    -type-specifier không được viết bên cạnh hàm squarer(), vì squarer() trả về một giá trị kiểu int.

     -type-specifier là không bắt buộc nếu một giá trị kiểu số nguyên được trả về hoặc nếu không có giá trị nào được trả về.

    -Tuy nhiên, tốt hơn nên chỉ ra kiểu dữ liệu trả về là int nếu một giá trị số nguyên được trả về và tương tự dùng void nếu hàm không trả về giá trị nào.
     5.Gọi hàm:
    Lưu ý:
     -Một dấu chấm phẩy được dùng ở cuối câu lệnh khi một hàm được gọi, nhưng nó không được dùng sau một sự định nghĩa hàm.
     -Cặp dấu ngoặc () là bắt buộc theo sau tên hàm, cho dù hàm có đối số hay không.
    -Hàm gọi đến một hàm khác được gọi là hàm gọi hay thủ tục gọi. Và hàm được gọi đến còn được gọi là hàm được gọi hay thủ tục được gọi.
     -Các hàm không trả về một giá trị số nguyên cần phải xác định kiểu của giá trị được trả về.
      -Chỉ một giá trị có thể được trả về bởi một hàm.
      -Một chương trình có thể có một hoặc nhiều hàm.
    6.Khai báo hàm:
    -Việc khai báo một hàm là bắt buộc khi hàm được sử dụng trước khi nó đươc định nghĩa.
    -Hàm address() được gọi trước khi nó được định nghĩa.
    -Một số trình biên dịch C sẽ thông báo lỗi nếu hàm không được khai báo trước khi gọi
    7.Các nguyên mẫu hàm
    -Là một khai báo hàm trong đó xác định rõ kiểu dữ liệu của các đối số và trị trả về.
    -Cú pháp tổng:
    type function_name(type parm_namel,type parm_name2,..type
                            parm_nameN);

    -Khi các nguyên mẫu được sử dụng, C có thể tìm và thông báo bất kỳ kiểu dữ liệu không hợp lệ khi chuyển đổi giữa các đối số được dùng để gọi một hàm với sự định nghĩa kiểu của các tham số. 
     -Khi một hàm không nguyên mẫu được gọi tất cả các kiểu char được đổi thành kiểu int và tất cả kiểu float được đổi thành kiểu double. Tuy nhiên, nếu một hàm là nguyên mẫu, thì các kiểu đã đưa ra trong nguyên mẫu được giữ nguyên và không có sự tăng cấp kiểu xảy ra.
    8.Các biến:
    Biến cục bộ là những biến được khai báo bên trong một hàm, đươc tạo tại điểm vào của một khối và bị hủy tại điểm ra của khối đó.
    - Tham số hình thức được khai báo trong một định nghĩa hàm như là các tham số, hoạt động như một biến cuc bộ bên trong một hàm.
    -Biến toàn cục được khai báo bên ngoài các hàm, lưu các giá trị tồn tại suốt thời gian thực thi của chương trình.
    9. Lớp lưu trữ:
    -Lớp lưu trữ xác định hai khía cạnh của biến: thời gian sống của biến và phạm vi của biến.

     -Có 4 lớp lưu trữ:
    +auto :
    +external:
    +static:
    +register
    10.Các qui luật về phạm vi của một hàm
    -là những qui luật quyết định một đoạn mã lệnh có thể truy xuất đến một đoạn mã lệnh khác hoặc dữ liệu hay không.

     -một hàm không thể được định nghĩa bên trong một hàm khác. Chính vì lý do này mà C không phải là một ngôn ngữ cấu trúc khối về mặt kỹ thuật.

    11.Gọi hàm:
    -Các hàm giao tiếp với nhau bằng cách truyền tham số. Các tham số được truyền theo một trong hai cách sau:
    Ø  Truyền bằng giá trị:khi các đối số được truyền đến hàm được gọi, các giá trị được truyền thông qua các biến tạm.

    Ø  Truyền bằng tham chiếu:hàm được phép truy xuất đến vùng bộ nhớ thực của các đối số và vì vậy có thể thay đổi giá trị của các đối số của hàm gọi.

    12. Sự lồng nhau của lời gọi hàm :
    -Lời gọi một hàm từ một hàm khác được gọi là sự lồng nhau của lời gọi hàm.


    Bài tập 1 :.      Viết một chương trình C để tính diện tích và chu vi hình tròn.


    Bài tập 2 :   Viết một chương trình in ra giai thừa của một số nguyên.
  • 0 nhận xét:

    Đăng nhận xét

    QUOTE & QUOTE

    Without requirements or design, programming is just the art of adding bugs to a blank text file.

    ADDRESS

    100000, My Dinh, Ha Noi, VN

    EMAIL

    minhbu883@mail.com
    minhnn17@fsoft.com.vn

    TELEPHONE

    +84964 214 883

    MOBILE

    +8438 5689 888