MỘT SỐ VÍ DỤ:Bài toán 1: Lập chương trình tối giản phân số trong đó có sử dụng hàm tính ước chung lớn nhấtUCLN của hai số nguyên.. Bài toán 1: Lập chương trình tối giản phân số trong đ
Trang 1
Trang 2Bài cũ!
Hãy lên bảng
viết cấu trúc
của thủ tục
Procedure <tên thủ tục>
[(<Ds tham số >):
<kdl tham số>];
[< Phần khai báo>]; Begin
[<Dãy các lệnh>];
End;
Trang 3BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ
DỤNG CHƯƠNG TRÌNH CON
(TIẾP THEO) Tiết 43: Ví dụ về cách viết và sử dụng hàm
Trang 41 CẤU TRÚC CỦA CHƯƠNG TRÌNH CON
<Phần đầu>
[<Phần khai báo>]
< Phần thân>
<Phần đầu>
[<Phần khai báo>]
< Phần thân>
Function <Tên hàm>
[(<ds tham số>):<kdl 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ố >):<kdl thamsố>];
[< Phần khai báo>];
Begin
[<Dãy các lệnh>];
End;
Hàm (Function) Thủ tục (Procedure)
Kiểu dữ liệu của giá trị
mà hàm trả về
Trong thân hàm có lệnh gán giá trị cho tên hàm
Nêu điểm khác nhau cơ
bản giữa thủ tục và
hàm
Trang 5Kiểu dữ liệu của hàm:
• Là kiểu dữ liệu của giá trị mà hàm trả về.
• Chỉ có thể là: integer, real, char, boolean, string.
Chú ý: Hàm không có tham số hình thức
thì không cần danh sách tham số.
Trang 62 MỘT SỐ VÍ DỤ:
Bài toán 1: Lập chương trình tối giản phân số trong
đó có sử dụng hàm tính ước chung lớn nhất(UCLN) của hai số nguyên.
Bài toán 1: Lập chương trình tối giản phân số trong
đó có sử dụng hàm tính ước chung lớn nhất(UCLN) của hai số nguyên.
Ví dụ: nhập 6/10 => ra 3/5
* INPUT : Nhập vào phân số: a/b;
* OUTPUT : Phân số c/d - Trong đó: c = a/ UCLN (a,b) ;
d = b/ UCLN(a,b) ;
Viết chương trình con thực hiện tìm UCLN(a,b) và gọi nó khi tính c,d trong chương trình chính
Hãy xác định INPUT và OUTPUT của bài
toán trên
Trang 7Program tgps;
Var tu,mau,c,d,m : integer;
Function UCLN( a,b :integer) : integer;
Begin While a<> b do
if a > b then a := a - b else b := b - a;
ucln := a;
end;
BEGIN
Write( Nhap vao tu so vµ mau so: ); readln(tu,mau);‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); ’); readln(tu,mau);
m:= UCLN(tu,mau);
C := tu div m ; d := mau div m;
Writeln( Phan so toi gian = , c, / , d);‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); ’); readln(tu,mau); ‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); ’); readln(tu,mau);
Readln;
END.
Write( Nhap vao tu so va mau so: ); ‘Nhap vao tu so va mau so:’); ’);
C := 6 div 2; d := 10 div 2;
UCLN(6,10)
Writeln( Phan so toi gian = , 3, / , 5);‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); ’); readln(tu,mau); ‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); ’); readln(tu,mau);
Readln;
END.
BEGIN
Readln(tu,mau); 2;
Nhap vao tu so va mau so: 6 10 Phan so toi gian= 3/5 Hãy xác định
chương trình con bắt đầu từ đâu và kết thúc
ở đâu?
Trang 8Dựa vào chương trình:
Biến toàn cục: tu,mau,c,d,m Biến cục bộ:
a,b.
Hãy xác định Biến toàn cục biến cục bộ của bài toán trên
Trang 9Cách sử dụng hàm:
• Lệnh gọi hàm gồm tên hàm và tham số thực sự tương ứng với các tham số hình thức
< tên hàm>( tham số thực sự);
• Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng
Ví dụ: a:=5*ucln(tuso,mauso)+1;
Trang 10Bài toán 2: Tìm giá trị nhỏ nhất trong ba số
nhập từ bàn phím trong đó có sử dụng hàm
tìm số nhỏ nhất trong hai số a,b
Input: Nhập ba số a,b,c
Output: Số nhỏ nhất trong ba số
Sử dụng hàm tìm số nhỏ nhất trong hai
số a,b
Hãy xác định
INPUT và OUTPUT của bài toán trên
Trang 11Program minbaso;
var a,b,c,d:real;
Function min(a,b:real): real;
begin
if a<b then min:=a else min:=b;
end;
Begin
write(‘nhap vao ba so: ’);
readln(a,b,c); d:=min(a,b);
writeln(‘so nho nhat trong ba so:’,min(d,c);
readln;
End.
Nhap vao ba so: 8 3 12
Begin
Write(‘nhap vao ba so:’ );
Readln(a,b,c); min(8,3);
3;
min(3,12);
min:=3;
Writeln(‘so nho nhat trong ba so:’
So nho nhat trong ba so: 3
Readln;
End.
Trang 12Củng cố:
Trang 13Câu 1: Khẳng định nào sau đây là đúng?
A Một chương trình con nhất thiết phải có tham số hình thức
B Một chương trình con nhất thiết phải có biến cục bộ
C Một chương trình con nhất thiết phải có tham số hình thức, không nhất thiết phải
có biến cục bộ
D Một chương trình con có thể không có
tham số hình thức và cũng có thể không có biến cục bộ
D Một chương trình con có thể không có
tham số hình thức và cũng có thể không có biến cục bộ
Trang 14Câu 2: Kiểu dữ liệu của hàm
• A Chỉ có thể là kiểu integer.
• B Chỉ có thể là kiểu real
• C Có thể là các kiểu integer, real, char, boolean, string.
• D Có thể là integer, real, char, boolean, string, record, kiểu mảng.
C Có thể là các kiểu integer, real, char, boolean, string
Hãy chọn câu trả lời đúng
???
Trang 15Hãy điền từ còn thiếu vào chỗ trống
Câu 3: Trong hai chương trình con thì
……… trả về một giá trị qua tên của nó còn ……… không trả về một giá trị nào qua tên của nó Do vậy, lời gọi……… …không thể tham gia vào biểu thức tính toán còn lời
gọi……… có thể tham gia vào
biểu thức tính toán như một toán hạng
Hàm(function)
Thủ tục(procedure) Thủ tục(procedure)
Hàm(function)
Trang 16Câu 4 : Cấu trúc của một chương
trình con gồm 3 phần: phần đầu,
phần khai báo và phần thân Trong
đó phần ……… nhất thiết phải có
và dùng để khai báo tên chương
trình con; phần ………… có thể
có hoặc không có tuỳ thuộc vào
từng chương trình con cụ thể.
Đầu
Khai báo
Hãy điền từ còn thiếu vào chỗ trống
Trang 17Xin chân thành cảm ơn
Trang 18Câu 5 : Các biến được khai báo để dùng riêng trong chương trình
con chứa nó gọi là
………., các biến được
khai báo trong chương trình chính gọi là ……… Biến toàn cục
Biến cục bộ
Hãy điền từ còn thiếu vào chỗ trống
Trang 19Câu 6 : Các tham số được đặt trong dấu ngoặc tròn sau tên của
chương trình con khi khai báo
được gọi là ……… , còn tham số trong lời gọi chương trình con gọi là ………
Tham số hình thức
Tham số thực sự
Hãy điền từ còn thiếu vào chỗ trống