Cách sử dụng thủ tục và hàm trong Pascal
Trang 1Sinh viên thực hiện : Nguyễn Thị Huệ
Lớp: K57A Khoa: CNTT
Giáo án điện tử Tin học lớp 11
Trang 2Kiểm tra bài cũ
Câu 1 Khái niệm chương trình con trong
Pascal? Lợi ích của việc sử dụng chương trình con?
Câu 2 Phân loại chương trình con? Sự khác nhau giữa chúng? Cấu trúc chung của 1
chương trình con?
Trang 3Đáp án
Câu 1:
- Khái niệm chương trình con: Chương trình con là một
dãy các lệnh mô tả một số thao tác nhất định và có thể được thực hiện từ nhiều vị trí trong chương trình.
- 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 một dãy lệnh
nào đó.
Trang 4Đáp án
Câu 2:
- Phân loại:
Chương trình con
Trang 5Đáp án
Câu 2
- Sự khác nhau giữa chương trình con và thủ
tục: Hàm (Function) – trả về một giá trị qua tên của nó; Thủ tục (Procedure) – không trả
về giá trị nào qua tên của nó.
- Cấu trúc của chung một chương trình con:
<Phần đầu>
[<Phần khai báo>]
<Phần thân>
Trang 7Procedure <tên thủ tục>[(ds tham số)];
[<Phần khai báo biến>];
Không có kiểu trả về.
<Phần khai báo biến> có thể
có hoặc không Các biến được khai báo ở đây gọi là biến
cục bộ
Trong hàm phải có lệnh gán
<tên hàm> bằng một giá trị cụ thể nào đó: <tên hàm>:=giá trị;
<ds tham số> của hàm và thủ tục
Các tham số được khai báo ở đây được gọi là tham số hình thức.
Cả hàm, thủ tục có thể có hoặc không có <ds tham số>
Thân chương trình Bắt đầu bằng
Từ khóa Begin và kết thúc bằng
End;
Main content
Trang 8Bài toán được đặt ra ở ví dụ trang 96 – SGK khi vẽ nhiều HCN cùng kích thước là nếu như ta không sử dụng chương trình con thì sẽ mất rất nhiều lần phải viết các lệnh Writeln
trong chương trình chính để vẽ các HCN, vì vậy
ta đưa các lệnh Writeln cần thiết vào 1 chương trình con
để vẽ HCN và sau đó khi vào chương trình chính nếu ta muốn vẽ HCN thì ta chỉ cần gọi thủ tục: Ve_HCN
Sau đây là chương trình ví dụ.
(Begin) chương trình chính
Thân thủ tục có các lệnh.
Chú ý: Khi kết thúc chương trình “End.”
(kết thúc bởi dấu “.”) còn khi kết thúc
thủ tục là “End;” (Thủ tục
kết thúc bởi từ khóa End và dấu “ ; ”
Lệnh gọi thủ tục trong chương trình chính, gọi thông qua tên
thủ tục.
Main content
Trang 9Cách sử dụng hàm (Function)
- Việc sử dụng hàm hoàn toàn tương tự với việc
sử dụng các hàm chuẩn (sin, sqrt,…); khi viết
lệnh gọi gồm tên hàm và tham số thực sự thay tương ứng cho tham số hình thức
- Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng Do tên hàm trả về giá trị
- Ví dụ: A:= 6*UCLN(a,b)+1;
Main content
Trang 10Tham biến và tham trị
- Biến được khai báo trong chương trình chính gọi là biến toàn cục Biến toàn cục có phạm
vi ảnh hưởng trong toàn bộ chương trình.
- Biến được khai báo trong chương trình con gọi là biến địa phương (hay biến cục bộ) Biến
địa phương có ảnh hưởng trong chương trình con.
In ra 5 10
In ra 5 5
Biến toàn cục
Biến địa phương (Biến cục bộ)
Kết quả khi chạy lệnh writeln thứ nhất
có kết quả đó?
Ta có thể gọi thủ tục hoan_doi(a,5) trong chương trình chính được không? Vì sao?
Không Do b là tham biến không thể đặt giá trị cụ thể trong khi gọi thủ tục vào vị trí của b.
Pascal (bien.pas)
Main content
Trang 11Một số ví dụ
Viết chương trình thực hiện tối giản một phân
số, trong đó sử dụng hàm để tính ước chung lớn nhất (UCLN) của hai số nguyên.
- Ví dụ: Nhập vào 5/10 kết quả: ½
- Xác định dữ liệu vào – ra:
* Input: Nhập phân số: a/b.
* Output: Đưa ra phân số tối giản: c/d.
+ c = a/ UCLN(a,b);
+ d = b/ UCLN(a,b);
Ví dụ về sử dụng hàm
Main content
Trang 12Viết chương trình cho ví dụ 1
c:= a div UCLN(a,b); d:= b div UCLN(a,b);
Writeln(‘Phan so toi gian c/d=‘,c,’/’,d);
Readln;
END.
Hàm tính ước chung lớn
nhất của hai số Hàm được viết trước khi bắt đầu chương trình chính
Tên hàm
Tham số kiểu
integer.
Kiểu trả về
Hàm trả về giá trị ước chung lớn nhất của 2 số nguyên Lệnh gán tên hàm bằng giá trị x.
Hàm được gọi trong chương trình chính thông qua tên của nó Ở đây do tên hàm trả về giá trị cụ thể kiểu Integer nên có thể sử dụng nó như một toán hạng trong biểu thức.
Pascal (toigian.pas) Main content
Trang 13- Output : Đưa ra max, min của 3 số a, b, c.
Ví dụ: Nhập vào 3 số 5, 6, 7 thì: max=7; min=5;
Main content
Trang 14Viết chương trình cho ví dụ 2
Write('Nhap so nguyen a = '); Readln(a);
Write('Nhap so nguyen b = '); Readln(b);
Write('Nhap so nguyen c = '); Readln(c); Writeln;
và tính min.
Gọi hàm tính max và tính min theo
cách đệ quy: max( max (a,b),c);
Pascal (max_min.pas)
Main content
Trang 15Ví dụ về sử dụng thủ tục
Ví dụ 3: Viết chương trình có sử dụng 1 thủ tục tìm min, max của 3 số a, b, c được
nhập vào từ bàn phím.
- Input : Nhập vào từ bàn phím 3 số a, b, c.
- Output : Đưa ra max, min của 3 số a, b, c.
Ví dụ: Nhập vào 3 số 5, 6, 7 thì: max=7; min=5;
Main content
Trang 16Viết chương trình cho ví dụ 3
if (b>=a) and (b>=c) then Writeln('max=',b:0:2)
else Writeln('max=',c:0:2); Writeln;
if (a<=b) and (b<=c) then Writeln('min=',a:0:2)
để tính max, min của 3 số.
Gọi thủ tục
Pascal (p_maxmin.pas)
Main content
Trang 17Ví dụ về sử dụng thủ tục (tiếp)
Ví dụ 4
- Vẽ các hình chữ nhật với các kích cỡ khác nhau, sử dụng thủ tục Ve_HCN với các tham
số cd (chiều dài) và cr (chiều rộng).
- Trong chương trình chỉ ra đâu là biến toàn cục, đâu là biến cục bộ.
Main content
Trang 18Viết chương trình cho ví dụ 4
a:=4; b:=2;{hinh dau kich thuoc 4x2}
{Ve 5 HCN: hinh sau gap doi hinh truoc}
để vẽ HCN.
Biến toàn cục a, b, i Sử dụng được cả trong chương trình con và chương trình chính.
Biến cục bộ j Chỉ
sử dụng được trong chương trình
Trang 19Ghi nhớ và củng cố bài học
- Biết cách phân loại hàm và thủ tục Chú ý:
chương trình con chỉ được thực hiện khi có lời gọi nó.
- Biết được cấu trúc chung và vị trí của hàm, thủ
tục trong chương trình.
- Cách viết và sử dụng thủ tục, hàm trong mỗi bài
toán, mỗi chương trình cụ thể.
- Phân biệt được tham biến và tham trị.
- Nắm được khái niệm về biến toàn cục và biến
cục bộ.
Main content
Trang 20Bài tập về nhà
1 Đọc trước Bài tập và thực hành 6+7 (Trang
103, 105 – SGK) Bài đọc thêm 3 (Trang 109 – SGK) Chuyển bị cho bài thực hành.
2 Làm bài tập 4 (Trang 117 – SGK).
3 Bài tập làm thêm : Viết chương trình có sử dụng
chương trình con (thủ tục hoặc hàm) để thực hiện tính chu vi và diện tích hình chữ nhật Yêu cầu nhập chiều dài và chiều rộng trong chương trình chính rồi gọi chương trình con để tính
diện tích và chu vi
4 Đọc trước Bài 19 (Trang 110 – SGK).
Main content
Trang 21Nguyenthihue.gvlienson@vinhphuc.edu.vn