1. Trường THPT Phan Đình
Phùng – Hà Nội
BÀI 17
Tin học lớp 11
GVHD: Lê Đức Long
SV:Nguyễn Thị Hoài An
2. 1.Giới thiệu bài mới
_ Để viết chương trình giải các bài toán lớn phức tạp, người lập chương
trình có thể chia thành nhiều bài toán nhỏ. Sau đó gép nối các chương
trình con thành chương trình chính
4
BT giải pt
ax2+bx+c = 0
BT 1 : Nhập hệ số a,b,c
BT 3 :Tính nghiệm x1,x2
BT 2 : Tính delta
CTrình giải pt
ax2+bx+c = 0
3. VD: giải phương trình bậc 2
PROCEDURE Nhap_abc; {Chương trình con
bằng thủ tục}
Begin
REPEAT
write('Nhap cac he so a, b, c: ');
readln(a,b,c);
UNTIL a<>0;
End;
4. VD
{Chương trình con bằng hàm}
FUNCTION Delta(a1, b1, c1: integer): real;
Begin
Delta := sqr(b1) - 4*a1*c1;
End;
{Chương trình con}
PROCEDURE Giai;
Begin
IF d<0 THEN write('Phuong trinh vo nghiem!')
ELSE
Begin
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
IF d=0 THEN writeln('Phuong trinh co nghiem kep x = ',x1:5:1)
ELSE writeln('Phuong trinh co 2 nghiem phan biet: ',x1:5:1,x2:5:1);
End;
End;
BEGIN
clrscr;
5. VD
{Gọi các chương trình con}
Nhap_abc;
d := Delta(a, b, c);
Giai;
readln;
END.
6. Chương trình con (CTC) là một dãy lệnh, dùng để mô tả một
số thao tác nhất định, có thể được thực hiện ở nhiều vị trí trong
chương trình.
Việc B
1.KHÁI NIỆM CHƯƠNG TRÌNH CON
7. 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òng lệnh
• Hỗ trợ việc thực thiện các chương trình lớn
• Phục vụ cho quá trình trựu tượng hoá
• Mở rộng khả năng ngôn ngữ
• Thuận tiện cho phát triển, nâng cấp chương trình
8. 2. PHÂN LOẠI CHƢƠNG TRÌNH CON
Chương trình con
Hàm (Function)
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ó.
Thủ tục (Procedure)
Là chƣơng trình con thực
hiện một số thao tác nào
đó, và không trả về giá trị
nào qua tên của nó.
Vd: sin(x), sqrt(x) Vd : các thao tác vào/ra chuẩn
hay thủ tục xử lí xâu: writeln,
readln, delete, insert…
9. CẤU TRÚC CỦA CHƢƠNG TRÌNH CON
<Phần đầu>
[<Phần khai báo>]
< Phần thân>
Trong đó
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 : là dãy câu lệnh thực hiện để từ dữ liệu vào ta nhận
được dữ liệu hay kết quả mong muốn
Phần đầu : dùng để khai báo tên, nếu là hàm thì phải khai báo
kiểu dữ liệu cho giá trị trả về của hàm
10. MỘT SỐ VÍ DỤ
Function <Tên hàm >[(<ds tham số >)] : kiểu
của hàm;
Ví dụ 1
Function delta(a,b,c:real) : real ;
var d: real;
Begin
d:= sqrt(b*b – 4*a*c)
delta :=d;
End;
[< Phần khai báo >]
Begin
<tên hàm > := giá trị trả về ;
End;
[<Dãy các lệnh>];
Viết CT delta của pt ax2+bx+c = 0 dùng CTC là hàm (function)
11. MỘT SỐ VÍ DỤ
Function <Tên hàm>[(<ds tham số>)] : kiểu
của hàm;
Ví dụ 2
Function Tong(x,y:integer) : integer ;
var z:integer;
Begin
z:= x + y;
Tong:=z;
End;
[< Phần khai báo>]
Begin
<tên hàm> := giá trị trả về ;
End;
[<Dãy các lệnh>]
Viết CT tính tổng của 2 số x và y dùng chương trình con là hàm
12. MỘT SỐ VÍ DỤ
Procedure <tên hàm>[(<ds tham số>)] ;
Ví dụ 3
Procedure Tong(x,y:integer);
var z:integer;
Begin
z:= x + y;
writeln(‘Tổng x và y là ’, z)
End;
[< Phần khai báo>];
Begin
End;
[<Dãy các lệnh>];
Viết CT tính tổng của 2 số x và y dùng chương trình con là thủ tục
13. MỘT SỐ VÍ DỤ
Begin
Ví dụ 4
Procedure <tên thủ tục> [(<ds tham số>)];
[< Phần khai báo>];
[<Dãy các lệnh>];
End;
Viết CT nhập 3 hệ số a,b,c của pt ax2+bx+c = 0 dùng CTC là thủ tục
Procedure Nhap(a,b,c:real);
Writeln(‘Nhập b ');Readln(b);
End;
Writeln(‘Nhập a ’);Readln(a);
Begin
Writeln(‘Nhập c ');Readln(c);
14. 3. Bài tập nhận biết
Hãy xác định các bài toán sau là hàm hay thủ tục:
1:
2:
3:
4:
Nhập hệ số a,b,c của pt ax2+bx+c=0
Tính delta của của pt ax2+bx+c=0
Tính nghiệm x1,x2 pt ax2+bx+c=0
Vẽ HCN ra màn hình
15. Đáp án
• 1: thủ tục
• 2: thủ tục
• 3: hàm
• 4: thủ tục
16. Cấu trúc của CTC(3 phần)
CTC có hai lọai
Hàm(Function) : trả về giá trị kiểu đơn
giản thông qua tên hàm
Thủ tục(Procedure): không trả về giá
trị thông qua tên
CTC là một dãy lệnh, dùng để mô tả một số thao tác nhất định, có thể
được thực hiện ở nhiều vị trí trong chương trình.
<Phần đầu>
[<Phần khai báo>]
< Phần thân>
17. Cú pháp khai báo hàm và thủ tục
Function <Tên hàm>[(<ds tham số>)] :
kiểu của hàm;
[< Phần khai báo>]
Begin
[<Dãy các lệnh>]
<tên hàm> := giá trị;
End;
Procedure <tên thủ tục> [(<ds
tham số>)];
[< Phần khai báo>]
Begin
[<Dãy các lệnh]
End;
Hàm (Function) Thủ tục (Procedure)
18. Dặn dò
• Tập viết chương trình con cho các phép tính:
cộng , trừ , nhân, chia và các bài toán
• Về nhà xem lại bài 18 ví dụ về cách viết và sử
dụng chương tình con.