1. Mô tả nào dưới đây về hàm là sai?
Câu hỏi: Mô tả nào dưới đây về hàm là sai?
A. Phải trả lại kết quả
B. Phải có tham số.
C. Trong hàm có thể gọi lại chính hàm đó
D. Trong hàm có thể gọi lại chính hàm đó.
TRẢ LỜI:
Hàm là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó. Trong hàm có thể gọi lại chính hàm đó, hàm có thể có hoặc không có tham số.
Đáp án: B
2. Lý thuyết liên quan đến Hàm
Khái niệm chương trình con
- Chương trình con: Là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi ) từ nhiều vị trí trong chương trình.
Giả sử ta có bài toán sau đây
Hãy tính S=ab+cd+ef
Nếu như với những kiến thức chúng ta đã học trước đây. Chúng ta có thể làm như sau:
+ Sử dụng các biến để lưu kết quả của ab, cd,ef.
Tác hại: Như vậy ta sẽ phải sử dụng 3 đoạn chương trình tương đồng với nhau. Nếu không phải tính 3 lũy thừa mà là tính 1000 lũy thừa thì số lượng code sẽ rất lớn và dễ gây rối và nếu ta phát hiện có lỗi sai trong đoạn code này ta sẽ phải sửa lần lượt tất cả các đoạn code này.
Cách khắc phục: Ta sẽ viết một chương trình con để tính lũy thừa. Với x là giá trị kiểu thực còn k là thuộc kiểu nguyên.
Khi cần tính lũy thừa thì ta chỉ cần viết tên gọi chương trình con rồi thay thế (x,k) bằng các giá trị cụ thể.
Những hàm mà chúng ta thường sử dụng trước đây như : sqrt(), upcase(), delete(),… đều là những chương trình con.
Lợi ích của việc sử dụng chương trình con:
+ Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh nào đó.
+ Hộ trợ việc thực hiện các chương trình lớn.
+ Phục vụ cho quá trình trừu tượng hóa.
+ Mở rộng khả năng ngôn ngữ.
+ Thuận thiện cho phát triển, nâng cấp chương trình.
Phân loại và cấu trúc của chương trình con
Phân loại
Trong nhiều ngôn ngữ lập trình, chương trình con thường gồm hai loại”.
+ Hàm (function) là chương trình con thực hiện một số thoa tác nào đó và trả về một giá trị qua tên của nó. Ví dụ hàm toán học hay hàm xử lí xâu:
Sin(x) nhận giá trị thực x và trả về giá trị sin(x);
Sqrt(x) nhận giá trị x và trả về giá trị căn bậc hai của x;
+ Thủ tuc (procedure) là chưng trình con thực hiện thoa tác nhất định nhưng không trả về giá trị nào qua tên của nó. Ví dụ các thủ tục vào /ra chuẩn hay thủ tục xử lý xâu:
Write, writeln, readln, read,…
Cấu trúc chương trình con
Chương trình con có cấu trúc tương tự chương trình, nhưng nhất thiết phải có tên và phần đầu dùng để khai báo tên, nếu là hàm phải khai báo kiểu dữ liệu cho giá trị trả về của hàm:
- Phần khai báo
Phần khai báo có thể có khai báo biến cho dữ liệu vào và ra, các hằng và biến dùng trong chương trình con.
- Phần thân
Phần thân của chương trình con là dãy câu lệnh thực hiện để từ những dữ liệu vào ta nhận được dữ liệu ra hay kết quả mong muốn.
- Tham số hình thức:
Các biến được khia bó cho dữ liệu vào/ra được gọi là tham số hình thức của chương trình con. Các biến được khia báo để dùng riêng tron chương trình con được gọi là biến cục bộ.
Ví dụ, trong chương trình con Luythua(x,k) ở phần 1 thì x, k là các tham số hình thức và j là biến cục bộ
Chương trình chính và các chương trình con khác không thể sử dụng được các biến cục bộ của chương trình con, những mọi chương trình con đều sử dụng được các biến cảu chương trình chính.
Thực hiện chương trình con
Tham số thực sự
Để thực hiện một chương trình con, ta cần phải có lệnh gọi nó tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số là các hằng và biến chứa dữ liệu vào và ra tương ứng với các tham số hình thức đặt trong cặp ngoặc ( và ). Các hằng và biến này gọi là tham số thực sự.
Khi thực hiện chương tình con, các tham số hình thức dùng để nhập dữ liệu vào sẽ nhận gái trị cảu tham số thực sự tương ứng, còn các tham số hình thức dùng để lưu trữ dữ liệu ra sẽ trả giá trị đó cho tham số thực sự tương ứng.
3. Trắc nghiệm liên quan về hàm
Câu 1: Hãy chọn phương án ghép đúng. Kiểu của một hàm được xác định bởi
A. Kiểu của các tham số
B. Kiểu giá trị trả về
C. Tên hàm
D. Địa chỉ mà hàm trả về
Câu 2: Mô tả nào dưới đây về hàm là sai?
A. Phải trả lại kết quả
B. Phải có tham số
C. Trong hàm có thể gọi lại chính hàm đó
D. Có thể có các biến cục bộ
Câu 3: Mô tả nào dưới đây về tham số là sai?
A. Một hàm có thể có cả tham số giá trị và tham số biến;
B. Có thể truyền biến số cho tham số giá trị ;
C. Có thể truyền giá trị cho tham số biến;
D. Có thể dùng tham số biến để nhận kết quả;
Câu 4: Hàm chuẩn nào dưới đây biến giá trị thực 6 thành 7?
A. Odd;
B. Round;
C. Trunc;
D. Abs;
Câu 5: Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?
A. Sin(x);
B. Length(S);
C. Sqrt(x);
D. Delete(S,5,1);
Câu 6: Phát biểu nào dưới đây về biến là sai?
A. Biến toàn cục có thể được sử dụng ở trong một thủ tục;
B. Biến cục bộ phải có tên khác với tên của biến toàn cục;
C. Biến cục bộ có thể có kiểu khác với kiểu của biến toàn cục có cùng tên;
D. Một hàm có thể có nhiều tham số biến;
Câu 7: Mô tả nào dưới đây về chương trình có cấu trúc là phù hợp nhất?
A. Chương trình có sử dụng cấu trúc mảng và bản ghi;
B. Sử dụng các hàm và thủ tục thư viện chuẩn;
C. Được chia thành nhiều chương trình con.
D. Cả A và B
Câu 8: Khẳng định nào sau đây là đúng?
A. Cả thủ tục và hàm đều có thể có tham số hình thức.
B. Chỉ có thủ tục mới có thể có tham số hình thức.
C. Chỉ có hàm mới có thể có tham số hình thức.
D. Thủ tục và hàm nào cũng phải có tham số hình thức.
Câu 9: Để khai báo hàm trong Pascal bắt đầu bằng từ khóa
A. Program.
B. Procedure.
C. Function.
D. Var.
Câu 10: Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa
A. Program.
B. Procedure.
C. Function.
D. Var.
Câu 11: Phát biểu nào sau đây là đúng khi nói về chương trình con?
A. Chương trình con là một lệnh mô tả một thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
B. Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và được thực hiện (được gọi) từ 1 vị trí trong chương trình.
C. Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và không thể thực hiện từ nhiều vị trí trong chương trình.
D. Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
Câu 12: Cấu trúc của hàm nhất thiết phải bao gồm:
A. < phần đầu> < phần thân>
B. < phần đầu>
C. < phần thân>
D. < phần khai báo> < phần thân>
Câu 13: Tham số hình thức là:
A. Các biến được khai báo ở < phần đầu>.
B. Các biến được khai báo ở chương trình chính.
C. Các biến được khai báo bất kì trong chương trình.
D. Tất cả các biến của chương trình.
Câu 14: Biến cục bộ là:
A. Các biến được khai báo để dùng riêng trong thân hàm.
B. Biến của chương trình con và chương trình chính.
C. Các biến được khai báo cho dữ liệu vào/ra.
D. Các biến của chương trình chính.
Câu 15: Trong lời gọi hàm sin(90), thì giá trị 90 là:
A. Biến toàn cục.
B. Tham số hình thức.
C. Tham số thực sự.
D. Biến cục bộ.
Câu 16: Khẳng định nào sau đây là đúng khi nói về sin(x) :
A. Hàm trả về giá trị sin(x).
B. Không phải là hàm.
C. Không phải là hàm nhưng trả về 1 giá trị nào đó.
D. Hàm thực hiện một số thao tác nhất định nhưng không trả về giá trị nào.
Câu 17: Hàm trong C++ chia làm mấy loại:
A. 2
B. 1
C. 3
D. 4
Câu 18: Khẳng định nào sau đây là sai khi nói về hàm có kết quả (Fruitful functions)?
A. Là loại hàm thực hiện một số thao tác nào đó nhưng không trả về giá trị nào.
B. Là loại hàm thực hiện một số thao tác nào đó và trả về một số giá trị theo sau lệnh return.
C. abs(x) là hàm có kết quả (Fruitful functions).
D. Các hàm toán học đều là hàm có kết quả (Fruitful functions).
Quý khách có thể tham khảo thêm bài viết: Phân loại Cấu trúc rẽ nhánh: Tin học 11 bài 9