phần đầu để 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. 19.[r]
(1)CHƯƠNG TRÌNH CON
Cho ngũ giác (như hình vẽ) với độ dài a, b, c, d, e, f, g Hãy tính diện tính hình sau đây?
b c
a
B
C A
g
e d
E
f
D
Để tính diện tích hình ta cần phải tính diện tích tam giác nhỏ Sau cộng diện tích tam giác lại
(2)b c a B C A g e d E f D writeln('Moi nhap a, b, c: ');
readln(a,b,c); p1:=(a+b+c)/2;
s1:= sqrt(p1*(p1-a)*(p1-b)*(p1-c));
writeln('Moi nhap g,e, f: '); readln(g,e, f);
p3:=(e+f+g)/2;
s3:= sqrt(p3*(p3-e)*(p3-g)*(p3-f));
writeln('Moi nhap d, c,e: '); readln(d, c,e);
p2:=(c+d+e)/2;
s2:= sqrt(p2*(p2-c)*(p2-d)*(p2-e));
s:=s1+s2+s3;
writeln('Dien tich cua ngu giac la: ', s);
2
(3)
3
Code khơng sử dụng chương trình con
(4)CHƯƠNG TRÌNH CON
Việc giải tốn phức tạp phân thành
các toán
Khi lập trình, để viết chương trình giải tốn
lớn, phức tạp người lập trình chia thành nhiều tốn nhỏ (cịn gọi khối), tốn dãy lệnh mơ tả số thao tác định (gọi chương
trình con) Sau ghép nối chương trình thành chương trình Nhóm trưởng
Cơng việc A
Cơn
g việc B
Kết A
(5)FUNCTION Tru(a, b: integer): integer;
begin
tru:=a - b; end;
FUNCTION Cong(a, b: integer): integer;
begin
cong:=a + b; end;
FUNCTION Chia(a, b: integer): integer;
begin
chia:=a DIV b; end;
FUNCTION Nhan(a, b: integer): integer;
begin
nhan:=a * b; end;
CHƯƠNG TRÌNH CON (HAY KHỐI LỆNH)
5
(6)CHƯƠNG TRÌNH CON
Chương trình khối lệnh nhằm
giải toán để góp phần giải tốn lớn chương trình.
Khi phải viết chương trình dài,
phức tạp, việc sử dụng chương trình hết sức cần thiết
(7)LỢI ÍCH KHI SỬ DỤNG CHƯƠNG TRÌNH CON
o Tránh việc phải viết lặp lặp lại
một dãy lệnh
o Hỗ trợ việc thực chương trình lớn. o Phục vụ cho q trính trừu tượng hoá
o Thuận tiện cho phát triển, nâng cấp chương
(8)THỦ TỤC(procedure) HÀM(function)
Là chương trình thực thao tác lệnh định đó, khơng trả giá trị qua tên của thủ tục
Là chương trình thực số thao tác lệnh đó, trả giá trị qua tên hàm
Writeln(); Readln(); - Sqr();
- Sqrt(); - Abs(); - Exp(); - ……
PHÂN LOẠI CHƯƠNG TRÌNH CON
CHƯƠNG TRÌNH CON
(9)CẤU TRÚC VÀ VỊ TRÍ CHƯƠNG TRÌNH CON
[ Phần khai báo chương trình ]
<phần đầu chuong trinh con> [<phần khai báo chương trình con>] <phần thân chương trình con>
Begin
{Loi goi chuong trinh }
End.
Phần đầu: khai báo tên chương trình con, hàm phải
khai báo kiểu liệu trả hàm
Phần khai báo: khai báo biến cho liệu vào ra,
biến dùng chương trình
Phần thân: dãy câu lệnh
(10)10
1 Cách viết sử dụng thủ tục:
Xét ví dụ vẽ hình chữ nhật có dạng sau: * * * * * * *
* *
* * * * * * *
Ta vẽ hình chữ nhật với ba câu lệnh:
Writeln(‘* * * * * * *’); Writeln(‘* * * * * * *’); Writeln(‘* *’);
Program vd1;
Begin
Writeln(‘* * * * * * *’); Writeln(‘* *’); Writeln(‘* * * * * * *’); Readln;
End
Theo em để vẽ hình chữ nhật ta phải
(11)11
1 Cách viết sử dụng thủ tục:
Xét ví dụ vẽ hình chữ nhật có dạng sau:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Ta vẽ hình chữ nhật với câu lệnh
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * **’);
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’); Writeln(‘*
*’);
Writeln(‘* *’);
Writeln(‘* *’);
Program vd1;
Procedure Ve_HCN;
Begin
Writeln(‘* * * * * * *’); Writeln(‘* *’); Writeln(‘* * * * * * *’); Readln; End; BEGIN Ve_HCN; writeln; writeln; Ve_HCN; writeln; writeln; Ve_HCN; END
Theo em, để vẽ hình chữ nhật
ta phải viết bao nhiêu lệnh
(12)12 1 Cách viết sử dụng thủ tục:
a Cấu trúc thủ tục:
Procedure <tên thủ tục>[<danh sách tham số>];
[<phần khai báo>]
begin
[<dãy lệnh>]
end;
program VD_thutuc1;
{************************}
procedure Ve_Hcn;
begin
writeln(‘* * * * * * *’); writeln(‘* * * * * * *’); writeln(‘* *’);
end;
{************************}
begin
Ve_Hcn;
writeln; writeln; Ve_Hcn;
writeln; writeln; Ve_Hcn;
(13)13
2 Cách viết sử dụng hàm
function <tên hàm>[(<danh sách tham số>)]:<kiểu liệu>; [<phần khai báo>]
begin
[<dãy lệnh>] end;
Trong đó:
• Kiểu liệu kiểu liệu giá trị mà hàm trả kiểu integer, real, char, boolean, string…
• Trong thân hàm (dãy lệnh) bắt buộc có lệnh gán giá trị cho tên hàm:
(14)14
Chương trình tính tổng số
Program TongHaiSo;
var a, b: real;
function Tong(a,b: real): real;
begin
Tong: =a+b;
end; begin
write(‘Nhap vao hai so:’); readln(a,b);
writeln(‘Tong so ban dau la: ‘, Tong(a,b)); readln;
(15)15
L ưu ý việc sử dụng chương trình con:
Sử dụng chương trình hàm (function) đáp ứng đồng thời yêu cầu sau:
-Nếu ta muốn nhận lại kết mà
thôi.
-Có cần dùng tên chương trình biểu thức tính tốn khơng?
(16)16
V Í D Ụ
Đối vói hàm (function) sqrt();
-Hàm sqrt(9) trả giá trị 3 -Có thể sử dụng biểu thức tính tốn A:= sqrt(9) + sqrt(16);
Writeln(‘Giá trị bâc : ‘, sqrt(9)); Đối với thủ tục (procedure) Writeln();
-Không thể gán cho biến A:= Writeln(); -Không thể sử dụng A:= Writeln(‘a’) + Writeln(‘b’);
(17)PHÂN LOẠI CHƯƠNG TRÌNH CON
Vẽ dãy n kí tự bất kì Tính tổng hai số
CHƯƠNG TRÌNH CON
(18)SO SÁNH HÀM VÀ THỦ TỤC
THỦ TỤC VẼ KÝ TỰ HÀM TÍNH TỔNG SỐ
PROCEDURE Ve(k: integer, ky_tu:char);
Var i: integer; Begin
For i:=1 to k do Write(ky_tu); End;
FUNCTION Cong(a, b: integer): integer;
begin
cong:=a + b; end;
- Kết trả giá trị qua tên hàm
- Có kết trả số
(19)SO SÁNH CẤU TRÚC CHƯƠNG TRÌNH CHÍNH VÀ CHƯƠNG TRÌNH CON
CHƯƠNG TRÌNH CON CHƯƠNG TRÌNH CHÍNH
[phần đầu có khơng] [<phần khai báo>]
<phần thân>
<phần đầu>bắt buộc phải có [<phần khai báo>]
<phần thân>
Chương trình thiết phải có tên
phần đầu để khai báo tên, hàm phải khai báo kiểu liệu cho giá trị trả hàm
(20)HẾT TIẾT 1