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

Tin học cơ sở 4 Hàm

40 477 1

Đ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 40
Dung lượng 506,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu về Hàm• Khối lệnh của chương trình chia để trị – Xây dựng chương trình từ các thành phần – Dễ dàng quản lý từng thành phần • Thuật ngữ trong các ngôn ngữ khác – Thủ tục, chươn

Trang 1

Tin Học Cơ Sở 4

Hàm

Trang 2

Trong Bài Giảng 04

– Tập hợp các dữ liệu có cùng kiểu

– Độ dài không đổi, phải xác định khi khai báo (hằng số) – Thường là mảng không đầy, phải quản lý số phần tử – 02 cách khởi tạo dữ liệu của mảng

• Ngay khi khai báo: int diem_so[] = {5, 8, 4};

• Dùng vòng lặp (for): for(…) { diem_so[i] = …; }

– Truy cập sử dụng chỉ số phần tử:

• Lưu ý: chỉ số trong khoảng từ 0 đến ĐộDài-1

– Các thao tác với mảng: nói chung đều dùng vòng lặp

Trang 3

Trong Bài Giảng 04

Trang 4

Trong Bài Giảng 04

Trang 6

Giới thiệu về Hàm

• Khối lệnh của chương trình (chia để trị)

– Xây dựng chương trình từ các thành phần

– Dễ dàng quản lý từng thành phần

• Thuật ngữ trong các ngôn ngữ khác

– Thủ tục, chương trình con, phương thức

– Trong C: Hàm

• I-P-O

– Input – Process – Output (Nhập – Xử lý – Xuất)

– Phần cơ bản của chương trình

Trang 7

Một số nguyên tắc

• Các hàm trong NNLT C đều ngang cấp với nhau:

– Hàm không được khai báo lồng nhau.

– Thứ tự khai báo không quan trọng

• Hàm có thể nhận và xử lý nhiều tham số hoặc không có tham số nào

• Hàm có thể trả về một giá trị hoặc không

• Biến khai báo trong hàm F chỉ có giá trị trong F, không sử dụng được biến này trong các hàm

khác được

Trang 8

kiểu của giá trị trả

về

nhận vào 2 tham số khi được gọi

giá trị được trả về qua lệnh return

Trang 9

Ví dụ gọi thực hiện hàm Power

}

Chỉ thị cho chương trình biết prototype (nguyên mẫu) của hàm Power

Trang 10

Một số lỗi thường gặp

Compiler không hiểu được hàm Power

hàm Power thiếu tham số

giá trị trả về không khớp

kiểu

Trang 11

Hàm định sẵn

• Các hàm trong thư viện

• Hai loại hàm:

– Trả về giá trị

– Không trả về giá trị (void)

• Phải gọi các thư viện phù hợp, sử dụng

#include

– <stdio.h> (cho printf , scanf)

– <math.h>

Trang 13

Cách gọi hàm

• Phép gán theRoot = sqrt(9.0);:

– Biểu thức sqrt(9.0) là lời gọi hàm

– Đối số trong lời gọi hàm (9.0) có thể là một giá trị, biến, biểu thức hoặc một lời gọi hàm khác

– Lời gọi hàm cũng có thể là một phần của biểu thức

• Lời gọi hàm có thể ở bất cứ đâu nếu kiểu trả về của hàm là hợp lệ

Trang 15

Hàm toán học (tiếp)

Trang 16

Hàm toán học (tiếp)

Trang 17

Hàm void định sẵn

• Không trả về giá trị

• Bản thân là một câu lệnh khi được gọi

exit(1); // không trả về giá trị, không gán

• Lệnh kết thúc chương trình

• Hàm void có thể nhận tham số

printf hoặc scanf

• Hoàn toàn giống hàm trả về giá trị:

– Ngoại trừ không trả về giá trị

Trang 18

– Trong file riêng biệt (người khác có thể sử dụng)

Trang 19

Sử dụng hàm

• 3 điểm chú ý khi sử dụng hàm:

– Khai báo hàm (Hàm nguyên mẫu)

• Chứa thông tin cho trình dịch

• Thông dịch chính xác cho lời gọi hàm

Trang 20

Khai báo hàm

• Còn gọi là hàm nguyên mẫu

• Thông báo cách dịch hàm cho trình dịch

– Cú pháp:

<KiểuTrảVề> TênHàm(<Danh-Sách-Tham-Số>);

– Ví dụ:

double Power(double x, int n);

• Phải đặt trước khi gọi hàm:

– Trong vùng khai báo của main()

– Hoặc ở trước main() trong vùng toàn cục

Trang 21

Định nghĩa hàm

• Cài đặt hàm

<KiểuTrảVề> TênHàm(<Danh-Sách-Tham-Số>); {

//khai báo các biến của hàm

// các lệnh thực thi

return <giá-trị-trả-về>;

Trang 23

Vị trí định nghĩa hàm

• Dưới hàm main()

– Không phải bên trong main()

– Nhớ cần khai báo nguyên mẫu hàm trước main()

• Tham số hình thức (biến) để truyền dữ liệu vào hàm

• Lệnh return trả lại dữ liệu

– Không có return đối với các hàm void

– Nói chung là lệnh cuối cùng

Trang 25

– Danh sách kiểu của tham số

• Có thể bỏ qua tên của tham số hình thức:

double Power(double, int);

Trang 26

Tham số - Đối số

• Hai khái niệm thường được dùng thay thế

– Tham số (parameter) – Đối số (argument)

• Tham số/Đối số hình thức:

– Trong khai báo hàm

• Tham số/Đối số thực sự:

– Trong lời gọi hàm

• Đôi khi quy ước tham số là hình thức, đối số là thực sự

Trang 27

Hàm gọi hàm

• Chúng ta đã và đang sử dụng cách này

– Sử dụng các hàm định sẵn trong main()

• Yêu cầu duy nhất

– Phải khai báo hàm trước khi gọi hàm

• Định nghĩa hàm có thể ở bất kỳ đâu

– Sau định nghĩa main()

– Trong một file riêng biệt

• Một hàm có thể gọi nhiều hàm khác

• Một hàm có thể gọi chính nó (đệ quy)

Trang 28

Khai báo hàm void

• Giống khai báo hàm trả về giá trị

• Kiểu trả về là “ void

• Ví dụ:

– Khai báo/Nguyên mẫu hàm

void show(double doF, double doC);

•Kiểu trả về “void

•Không trả về thông tin gì

Trang 29

Khai báo hàm void

void show(double doF, double doC)

Trang 30

• Không phép gán, do không có giá trị trả về

• Đối số thực (doF , doC)

–Được truyền vào hàm

–Hàm được gọi với đối số truyền vào

Trang 31

Hàm đệ quy

• Các hàm tự gọi chính mình

• Chỉ giải quyết các trường hợp cơ bản

• Nếu không phải trường hợp cơ bản

– Chia bài toán thành các bài toán nhỏ hơn

– Gọi bản sao của hàm để giải quyết các bài nhỏ– Cuối cùng trường hợp cơ bản được giải quyết

• Ví dụ: hàm tính dãy Fibonacci, giai thừa,

ước số chung lớn nhất, …

Trang 32

Truyền tham số cho hàm

Trang 33

Truyền giá trị

• Hàm sẽ xử lý trên bản sao của tham số

– Hàm không thể thay đổi giá trị của tham số được.

• Được dùng trong các trường hợp cần chuyển dữ liệu vào bên trong hàm để xử lý, tính toán

• Các ví dụ trên đều dùng kiểu truyền tham số bởi giá trị

• Ví dụ hàm có sẵn của C truyền giá trị:

– float sqrt(float);

– double pow(double, double);

Trang 34

ham: v = 500 main: var = 5

hàm ThayDoiTruyenGiaTri không thay đổi giá trị của

“var”

Trang 35

Truyền địa chỉ

• Hàm sẽ xử lý trên chính tham số nhờ vào địa chỉ của chúng

– Hàm có thể thay đổi giá trị của tham số.

• Được dùng trong các trường hợp cần chuyển dữ liệu là kết quả xử lý được bên trong hàm ra

“ngoài” cho các hàm khác sử dụng

Trang 36

truyền địa chỉ của “var” vào hàm

ThayDoiTruyenDiaChi

ham: *v = 500 main: var = 500

ham: *v = 500 main: var = 500

Trang 38

– Duy trì điều khiển trên dữ liệu

– Hàm nên khai báo tất cả dữ liệu cục bộ nó cần

Trang 39

Hằng toàn cục – Biến toàn cục

• Khai báo bên ngoài thân hàm

– Toàn cục với tất cả các hàm trong file

• Khai báo bên trong thân hàm

Trang 40

• Khai báo dữ liệu bên trong khối lệnh

– Dữ liệu hoạt động trong phạm vi khối

• Chú ý: định nghĩa hàm là khối

– Phạm vi hoạt động hàm cục bộ

Ngày đăng: 03/04/2016, 21:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN