16
CHƯƠNG TRÌNH CON Mục tiêu: 1. Học sinh nắm vững cấu trúc 1 chương trình con. 2. Hiểu được ý nghĩ của việc viết chương trình con. 14/09/2015 1 Yêu cầu: + Các em học sinh ghi nhận lại tất cả lý thuyết và bài tập mẫu vào vở học. + Mở máy thực hiện lại ví dụ và làm bài tập theo yêu cầu trong slide. + Tuyệt đối im lặng, không tự ý rời khỏi chỗ, cấm chơi game trong giờ học. + Thứ 04 ngày 15/09/2015 học sinh nộp vở học. Thầy mong lớp ý thức tốt trong giờ học. Chúc mọi người học tốt. GVBM PNQuang.

Chương Trình Con

Embed Size (px)

DESCRIPTION

BG Chương Trình Con

Citation preview

Page 1: Chương Trình Con

CHƯƠNG TRÌNH CONMục tiêu:

1. Học sinh nắm vững cấu trúc 1 chương trình con.2. Hiểu được ý nghĩ của việc viết chương trình con.

14/09/2015 1

Yêu cầu: + Các em học sinh ghi nhận lại tất cả lý thuyết và bài tập mẫu vào vở học.+ Mở máy thực hiện lại ví dụ và làm bài tập theo yêu cầu trong slide.+ Tuyệt đối im lặng, không tự ý rời khỏi chỗ, cấm chơi game trong giờ học.+ Thứ 04 ngày 15/09/2015 học sinh nộp vở học.Thầy mong lớp ý thức tốt trong giờ học. Chúc mọi người học tốt.

GVBM PNQuang.

Page 2: Chương Trình Con

CHƯƠNG TRÌNH CON

1. Một số khái niệm:+ Chương trình con là một chương trình tập hợp nhiều câu lệnh.+ Chương trình con phải được viết bên trên chương trình chính.+ Mỗi chương trình con chỉ thực hiện một công việc nhất định.+ Bên trong chương trình chính phải có lời gọi đến tên của chương trình con.+ Một chương trình con này có thể gọi đến chương trình con khác để làm việc.+ Một chương trình con có thể gọi lại chính nó để làm việc Đệ quy.

2. Phân loại chương trình con:Có 2 loại chương trình con:

2.1 Thủ tục (Procedure)có 2 dạng

2.2 Hàm (Function) có 2 dạng

2.1.1 Procedure <<không có>> tham số hình thức.

2.1.2 Procedure <<có>> tham số hình thức.

2.2.1 Function <<không có>> tham số hình thức.

2.2.2 Function <<có>> tham số hình thức.

14/09/2015 2

Page 3: Chương Trình Con

CHƯƠNG TRÌNH CON

3. Cấu trúc chung của một chương trình con:Về cấu trúc chương trình con cũng giống với chương trình chính.

1. CTC phải bắt đầu bằng từ khóa Procedure/ Function Tên chương trình con;2. Phần khai báo biến để sử dụng trong chương trình con bắt đầu bằng từ khóa

var ten_bien: KDL của biến;3. Trong thân chương trình con phải bắt đầu bằng từ khóa begin4. Viết các câu lệnh trong thân chương trình con;5. Kết thúc một chương trình con phải có từ khóa end;

14/09/2015 3

Page 4: Chương Trình Con

CHƯƠNG TRÌNH CON

3. Cấu trúc chung của chương trình con:

Ví dụ 1 : Viết thủ tục thực hiện cộng 2 số a, b như sau:

Var a, b: Integer; // a,b được khai báo ở đầu chương trình.

Procedure TinhCong;var Tong: Integer;begin

Tong:= a + b;

Write(‘ Ket qua cong hai so la’, Tong);end;

2.1.1 Procedure <<không có>> tham số hình thức.

14/09/2015 4

Page 5: Chương Trình Con

CHƯƠNG TRÌNH CON

3. Cấu trúc chung của chương trình con:

Chương trình hoàn chỉnh cho ví dụ 1:uses Crt;Var a, b: Integer; // a,b được khai báo ở đầu chương trình.// Chương trình con NhapProcedure Nhap;begin

Write(‘ Nhap so a=‘);ReadLn(a);Write(‘ Nhap so b=‘);ReadLn(b);

end;

// Chương trình con TinhCong // Chương trình chính.Procedure TinhCong; Begin

ClrScr;var Tong: Integer; Nhap;begin TinhCong;

Tong:= a + b; ReadLn;

Write(‘ Ket qua cong hai so la’, Tong); End.end;

Gọi lại CTC trong chương trình chính.

14/09/2015 5

Page 6: Chương Trình Con

CHƯƠNG TRÌNH CON

4. Ý nghĩa của việc viết chương trình con trong lập trình:

• Cho phép phân rã những bài toán phức tạp thành nhiều bài toán đơn giản.

• Nâng cao tính độc lập trong việc thiết kế, cho phép xây dựng những chương trình lớn, có nhiều người tham gia.

• Cho phép xây dựng thư viện lập trình, kế thừa các kết quả trước đây, giảm chi phí và công sức trong việc viết chương trình.

• Dễ kiểm soát toàn bộ chương trình. Dễ dàng sửa chữa và phát triển…

14/09/2015 6

Page 7: Chương Trình Con

CHƯƠNG TRÌNH CON

5. Bài tập áp dụng:

Em hãy viết 1 bài tập theo cấu trúc chương trình con như sau:

1. Phần khai báo biến đầu chương trình.2. Procedure Nhap; // Nhập 2 số a, b3. Procedure PhepCong;4. Procedure PhepTru;5. Procedure PhepNhan;6. Procedure PhepChia; // Lấy số a chia cho số b7. Trong chương trình chính ta chỉ việc gọi lại các CTC đã viết.

14/09/2015 7

Page 8: Chương Trình Con

Chuẩn bị cho các buổi học tiếp theo

- Hiểu rõ cấu trúc cách viết 1 chương trình con.

- Khi nào thì sử dụng Procedure/ Function?

- Tham số hình thức là gì?

- Thế nào là tham biến , tham trị.

- Vai trò của biến toàn cục, biến địa phương.

14/09/2015 8

Page 9: Chương Trình Con

CHƯƠNG TRÌNH CON 2.1.2 Procedure <<có>> tham số hình thức.

1. Cấu trúc chung :// 1. Khai báo tên thủ tuc:Procedure TenThuTuc ( đối số 1: KDL; đối số 2: KDL …);// 2. Khai báo biến cục bộ:var Ten_bien: KDL;begin

// 3. Các câu lệnh được viết ở đây.end;// 4. Chương trình chính:Begin

// 5. Gọi lại tên thủ tục đã viết:TenThuTuc(tham số 1, tham số 2 …);ReadLn;

End.

14/09/2015 9

Page 10: Chương Trình Con

CHƯƠNG TRÌNH CON

2. Phân loại đối số :

2.1 Đối số là <<Tham trị>> khi không có từ khóa Var trước đối số.2.2 Đối số là <<Tham biến>> phải có từ khóa Var trước đối số.

3. Khi nào sử dụng đối số là Tham trị hay Tham biến ?3.1 Khi ta không cần kết quả tính toán trả lại cho tham số hình thức

truyền vào cho đối số thì ta khai báo đối số là Tham trị.3.2 Khi ta cần kết quả tính toán trả lại cho tham số hình thức

truyền vào cho đối số thì ta khai báo đối số là Tham biến.

2.1.2 Procedure <<có>> tham số hình thức.

14/09/2015 10

Page 11: Chương Trình Con

CHƯƠNG TRÌNH CON 2.1.2 Procedure <<có>> tham số hình thức.

3.1 Khai báo đối số là Tham trị:// 1. Khai báo tên thủ tuc:Procedure TenThuTuc ( đối số 1: KDL; đối số 2: KDL …);// 2. Khai báo biến cục bộ:var Ten_bien: KDL;begin

// 3. Các câu lệnh được viết ở đây.end;// 4. Chương trình chính:Begin

// 5. Gọi lại tên thủ tục đã viết:TenThuTuc(tham số 1, tham số 2 …);ReadLn;

End.

14/09/2015 11

Page 12: Chương Trình Con

CHƯƠNG TRÌNH CON 2.1.2 Procedure <<có>> tham số hình thức.

3.1 Khai báo đối số là Tham trị:Ví dụ:

Var a, b: Integer;// 1. Khai báo tên thủ tuc:Procedure PhepCong ( x: Integer; y: Integer);// 2. Khai báo biến cục bộ:var Tong: Integer;begin

// 3. Các câu lệnh được viết ở đây.Tong:= x + y; x:= x + y; // x:= x + y = 3 + 5 = 8y:= x*y; // y:= x *y = 3*8 = 24Write(‘ Ket qua cong hai so la ‘ , Tong);

// Tính toán lại giá trị x, y nhưng không trả lại kết quả cho a, b đã truyền vào.end;// 4. Chương trình chính:Begin

a:=3; b:=5; // Gán cứng giá trị cho 2 biến a, b// 5. Gọi lại tên thủ tục đã viết:PhepCong(a,b);WriteLn(‘ Gia tri a sau khi truyen cho x la’ , a); // a= 3WriteLn(‘ Gia tri b sau khi truyen cho y la’ , b); // b= 5ReadLn;

End.14/09/2015 12

Page 13: Chương Trình Con

CHƯƠNG TRÌNH CON

3.2 Khai báo đối số là Tham biến:// 1. Khai báo tên thủ tuc:Procedure TenThuTuc ( Var đối số 1: KDL; Var đối số 2: KDL …);// 2. Khai báo biến cục bộ:var Ten_bien: KDL;begin

// 3. Các câu lệnh được viết ở đây.end;// 4. Chương trình chính:Begin

// 5. Gọi lại tên thủ tục đã viết:TenThuTuc(tham số 1, tham số 2 …);ReadLn;

End.

2.1.2 Procedure <<có>> tham số hình thức.

14/09/2015 13

Page 14: Chương Trình Con

CHƯƠNG TRÌNH CON 2.1.2 Procedure <<có>> tham số hình thức.

3.2 Khai báo đối số là Tham biến:Ví dụ:

Var a, b: Integer;// 1. Khai báo tên thủ tuc:Procedure PhepCong ( Var x: Integer; Var y: Integer);// 2. Khai báo biến cục bộ:var Tong: Integer;begin

// 3. Các câu lệnh được viết ở đây.Tong:= x + y; x:= x + y; // x:= x + y = 3 + 5 = 8y:= x*y; // y:= x *y = 3*8 = 24Write(‘ Ket qua cong hai so la ‘ , Tong);

// Tính toán lại giá trị x, y sẽ trả lại kết quả cho a, b đã truyền vào.end;// 4. Chương trình chính:Begin

a:=3; b:=5; // Gán cứng giá trị cho 2 biến a, b:// 5. Gọi lại tên thủ tục đã viết:PhepCong(a,b);WriteLn(‘ Gia tri a sau khi truyen cho x la’ , a); // a= 8WriteLn(‘ Gia tri b sau khi truyen cho y la’ , b); // b= 24ReadLn;

End.14/09/2015 14

Page 15: Chương Trình Con

3.3 Bài tập áp dụng:

• Học sinh thực hành lại các phép toán + PhepCong+ PhepTru+ PhepNhan+ PhepChia.

Theo yêu cầu:a) Đối số là Tham trị.b) Đối số là Tham biến.

Lưu ý sử dụng các phép toán thay đổi giá trị x, y như trong ví dụ sau đóxuất lại giá trị a, b để thấy được sự phân biệt khi đối số là Tham trị hay Tham biến.

14/09/2015 15

Page 16: Chương Trình Con

CHƯƠNG TRÌNH CON 2.2.1 Function <<không có>> tham số hình thức.

1. Cấu trúc chung :// 1. Khai báo tên hàm:Function TenHam ;// 2. Khai báo biến cục bộ:var Ten_bien, Ket_qua : KDL;begin

// 3. Các câu lệnh được viết ở đây.

Ket_qua:= TenHam;end;// 4. Chương trình chính:Begin

// 5. Gọi lại tên hàm viết:TenHam;ReadLn;

End.

14/09/2015 16