Tin học đại cương - profthinh Phan2_chuong3_Ham

16 82 0
Tin học đại cương - profthinh Phan2_chuong3_Ham

Đ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

Chương III HÀM VÀ TỔ CHỨC CHƯƠNG TRÌNH 3.1 Mở đầu Một chương trình viết C dãy hàm có hàm hàm main() Hàm đoạn chương trình độc lập, giải cơng việc hồn chỉnh sử dụng nhiều lần chương trình  Hàm chia tốn lớn thành cơng việc nhỏ giúp cho việc thực công việc lặp lại cách nhanh chóng mà khơng cần viết lại mã lệnh chương trình  Thứ tự hàm chương trình bất kỳ, song chương trình ln thực hàm main() Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.2 Định nghĩa hàm Cú pháp tổng quát để định nghĩa hàm sau: Kiểu_trả_về tên_hàm (kiểu danh_sách_tham_số) { /* thân hàm */ Các_câu_lệnh ; return giá_trị ; } - Kiểu_trả_về kiểu kết cần trả hàm Nếu hàm không cần trả kết kiểu_trả_về void - Tên_hàm đặt tên theo quy tắc định danh Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.2 Định nghĩa hàm - Danh_sách_tham_số: Tham số hàm phương tiện để truyền liệu cần thiết từ bên vào hàm từ hàm bên Nếu có nhiều tham số chúng phải cách dấu phẩy phải khai báo riêng biệt - Câu lệnh return dùng để kết thúc việc thực hàm (nếu hàm có giá trị trả về), trả kết chuyển quyền điều khiển nơi gọi hàm Giá trị kết phải có kiểu phù hợp với kiểu_trả_về khai báo dòng tiêu đề Cú pháp tổng quát lệnh return: return biểu_thức;  Lưu ý: C không cho phép hàm lồng nhau, nghĩa phần định nghĩa hàm phải độc lập hoàn toàn với hàm khác Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.2 Định nghĩa hàm ĐỊNH NGHĨA HÀM DÙNG LỆNH: #define Trong số trường hợp, định nghĩa hàm dùng lệnh #define đơn giản Cú pháp: #define Tên_hàm(Các_tham_số) Biểu_thức_Giá_trị  VÍ DỤ: #define SUM(x, y) (x + y) //Tổng hai số #define SQR(x) (x*x) // Bình phương số #define MAX(x, y) (x > y) ? x : y //Tìm số lớn số Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.3 Khai báo nguyên mẫu hàm Một khai báo nguyên mẫu hàm cung cấp cho trình biên dịch mô tả hàm định nghĩa vị trí chương trình Cú pháp tổng quát khai báo nguyên mẫu hàm: Kiểu_trả_về tên_hàm (kiểu danh_sách_tham_số); Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.4 Gọi hàm Cú pháp gọi hàm: Tên_hàm (danh_sách_đối_số) ; Cặp dấu ngoặc () bắt buộc phải có cho dù hàm có đối số không Trong danh_sách_đối_số không đưa kiểu liệu đối số Nếu hàm cần truyền nhiều đối số chúng phải tách dấu phẩy Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ 1: Hàm khơng có giá trị trả Kết chạy chương trình : Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ 2: Hàm có giá trị trả Kết chạy chương trình : Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.5 Phạm vi biến Phạm vi biến: vùng chương trình mà biến sử dụng Thời gian sống biến: khoảng thời gian biến tồn nhớ Mỗi biến sau khai báo cấp phát vùng nhớ để lưu trữ Đến thời điểm đó, vùng nhớ bị thu hồi lại để lưu trữ biến khác Biến sử dụng gồm hai loại là: - Biến toàn cục : khai báo bên tất hàm tác dụng tồn chương trình - Biến cục : khai báo thân hàm khối lệnh tác dụng phạm vi khai báo 10 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.6 Hàm đệ quy  Hàm đệ quy hàm mà từ điểm thân gọi tên hàm  Khi hàm gọi đệ quy lần gọi, máy tạo tập biến cục hoàn toàn độc lập với tập biến cục tạo từ lần gọi trước  Số lần gọi đệ quy phải có giới hạn, tức việc gọi đệ quy phải có điểm dừng 11 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Xây dựng hàm đệ quy Hàm đệ quy thường viết theo dạng sau: if (trường_hợp_cơ_sở) { /*giải toán trả kết quả*/ } else /*trường_hợp_tổng_quát */ { //gọi đệ quy tới hàm với đối số truyền vào có giá trị khác } - Phần khơng đệ quy: bao gồm trường hợp sở giải trực tiếp, mà khơng cần đến tốn Phần định tính dừng thuật toán - Phần đệ quy: trường hợp tổng quát Bài toán quy toán dạng nhỏ có giá trị tham số thay đổi 12 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ: Hàm đệ quy tính n! Kết chạy chương trình: 13 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.7 Một số hàm tốn học sẵn có C Tên hàm rand() random(x) pow(x,y) sqrt(x) sin(x), cos(x), tan(x) abs(a) labs(a) exp(x) log(x) log10(x) ceil(x) floor(x) Khai báo stdlib.h stdlib.h math.h math.h math.h stdlid.h stdlid.h math.h math.h math.h math.h math.h Ý nghĩa Cho giá trị ngẫu nhiên từ đến 32767 Cho giá trị ngẫu nhiên từ đến x Tính x mũ y Tính bậc x Tính sin, cosin, tang góc x có số đo x radian Cho giá trị tuyệt đối số nguyên a Cho giá trị tuyệt đối số nguyên dài a Tính e mũ x Tính logarit số e x Tính logarit số 10 x Phần nguyên nhỏ không nhỏ x Phần nguyên lớn không lớn x 14 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Bài tập luyện tập Bài 1: Viết hàm kiểm tra số có phải số phương hay khơng ? hàm trả giá trị số kiểm tra số phương, ngược lại hàm trả giá trị Từ liệt kê số phương khoảng (m;n) Bài 2: Viết hàm kiểm tra số có phải số ngun tố hay khơng ? hàm trả giá trị số kiểm tra số nguyên tố, ngược lại hàm trả giá trị 0.Từ liệt kê số nguyên tố khoảng (m;n) Bài 3: Viết chương trình chứa hàm để tính giai thừa số tự nhiên Trong hàm main() in hình hệ số số hạng thứ k khai triển nhị thức Newton : (a+b)100 ? 15 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Bài tập luyện tập Bài 4: Viết chương trình xuất hình hệ số số hạng khai triển nhị thức Newton (1+x) n với n nguyên dương nhập từ bàn phím Bài 5: Viết hàm đệ quy tính biểu thức sau : a) S = 1+2+3+…+n b) P = x*x*x*…*x (n lần số x) c) Q = 5+10+15+…+5*n Bài 6: Tính giá trị lớn nhỏ số ? Bài 7: Xuất hình tam giác Pascal với chiều cao n Bài 8: Viết hàm in số dạng máy tính bỏ túi với tham số hàm từ đến 16 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật ... } - Kiểu_trả_về kiểu kết cần trả hàm Nếu hàm không cần trả kết kiểu_trả_về void - Tên_hàm đặt tên theo quy tắc định danh Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.2 Định nghĩa hàm -. .. gồm hai loại là: - Biến toàn cục : khai báo bên tất hàm tác dụng tồn chương trình - Biến cục : khai báo thân hàm khối lệnh tác dụng phạm vi khai báo 10 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ... 13 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 3.7 Một số hàm tốn học sẵn có C Tên hàm rand() random(x) pow(x,y) sqrt(x) sin(x), cos(x),

Ngày đăng: 11/12/2017, 19:39

Tài liệu cùng người dùng

Tài liệu liên quan