SlideShare a Scribd company logo
1 of 21
Viết chương trình xuất ra màn 
hình hình chữ nhật có dạng: 
********** 
* * 
********** 
1
procedure Ve_HCN; 
begin 
Writeln(‘**********’); 
Writeln(‘* *’); 
Writeln(‘**********’); 
end; 
2 
function LT(x,y: integer): integer 
var t, i: integer; 
begin 
t:= 1; 
for i:= 1 to n do 
t:= t*x; 
LT:= t; 
end.
3
1. Các viết và sử dụng thủ tục 
procedure Ve_HCN; 
begin 
Writeln(‘**********’); 
Writeln(‘* *’); 
Writeln(‘**********’); 
end; 
Program VD_thutuc1; 
procedure Ve_HCN; 
begin 
Writeln(‘**********’); 
Writeln(‘* *’); 
Writeln(‘**********’); 
end; 
Begin 
Ve_HCN; 
Writeln; 
Ve_HCN; 
Writeln; 
Ve_HCN; 
End. 
4
1. Cách viết và sử dụng thủ tục 
 Cấu trúc của thủ tục: 
procedure <tên thủ tục>[(<danh sách tham số>)]; 
[<phần khai báo>] 
begin 
[<dãy các lệnh>] 
end; 
Trong phần khai báo 
gồm những khai báo 
gì? 
Trong đó: 
 Phần đầu thủ tục: gồm tên procedure và tên thủ tục, danh sách 
tham số (nếu có). 
 Phần khai báo: xác định các hằng, kiểu, biến và xác định các 
chương trình con khác được sử dụng trong thủ tục. 
 Dãy câu lệnh: viết giữa cặp tên dành riêng begin và end. 
5
Quan sát VD_thuctuc1/96 + 
VD_thutuc2/98 cho biết: 
 Input và Output của 2 chương 
trình. 
 Tên thủ tục, danh sách tham 
số, phần khai báo, các dãy 
lệnh. 
 Vị trí và cách gọi thủ tục trong 
chương trình chính. 
6
Vị trí và cách gọi thủ tục 
Program VD_thutuc2; 
Uses crt; 
var a,b: byte; 
Procedure Ve_HCN( chdai,chrong:integer); 
Var i,j: integer; 
Begin 
For i:=1 to chdai do write(‘ * ’); 
Writeln; 
For j:=1 to chrong-2 do 
begin 
write(‘ * ’); 
for i:=1 to chdai-2 do write(‘ ‘); 
writeln(‘ * ’); 
end; 
For i:=1 to chdai Do write(‘ * ’); 
writeln; 
End; 
BEGIN 
clrscr; 
Ve_HCN(25,10); 
Writeln; a:=5 ; b:=10; 
Ve_HCN(a,b); 
readln; 
END. 
Vị trí của chương trình 
con: nằm sau phần khai 
báo và trước phần thân 
chương trình chính 
Khi cần gọi đến thủ tục ta cần gọi tên 
của nó kèm theo danh sách tham số 
(nếu có) 
7
2. Tham số và cách truyền tham số 
 Tham số tại nơi gọi: tham số thực 
 Tham số tại nơi được gọi: tham số hình thức. 
Kiểu tham số 
hình thức 
Khai báo Giá trị của tham số thực tương ứng 
sau khi thực thi chương trình con 
Tham số giá trị 
(Tham trị) 
Không có 
VAR 
Giữ nguyên giá trị ban đầu như trước 
khi gọi chương trình con. 
Tham số biến 
(Tham biến) 
Procedure Ve_HCN( chdai,chrong:integer) 
Có VAR Lấy giá trị kết quả của chương trình 
Procedure Hoan_Doi( var x, y:integer) 
con. 
8
Nhóm quan sát 2 chương trình Gv demo 
và đọc tham khảo SGK (VD_thambien1 
và VD_thambien2 /99,100) cho biết: 
-Hai chương trình trên có sử dụng 
chương trình con hay không? Và cho 
biết chương trình con đó thực hiện 
nhiệm vụ gì?(nếu có). 
-Xác định tham số giá trị và tham biến 
trong hai chương trình vừa demo? (nếu 
có). 
-Phân biệt tham số giá trị và tham số 
biến? 
7 phút 
9
3. Cách viết và sử dụng hàm 
 Cấu trúc của hàm: 
Function <tên hàm>[(<danh sách tham số>)]:<kiểu dữ liệu >; 
[<phần khai báo>] 
begin 
[<dãy các lệnh>] 
<tên hàm>:= <biểu thức> 
end; 
Kiểu dữ liệu trả về có thể gồm những 
kiểu nào? 
Kiểu dữ liệu chỉ có thể là kiểu dữ liệu chuẩn: integer, real, 
char, boolean, string. 
<tên hàm>:= <biểu thức> câu lệnh gán giá trị cho 
tên hàm 
10
VD: Viết chương trình rút gọn phân số 
Ví dụ: Nhập: 6/10 => ra 3/5 
* INPUT : Nhập phân số a/b; 
* OUTPUT : Phân số T/M- Trong đó: T = a/UCLN(a,b); 
M = 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 T, M 
trong chương trình chính. 
11
Program tgps; 
Uses crt; 
Var tu,mau,T,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 
BEGIN 
Write(‘ Nhap vao tu so vμ mau so:’); readln(tu,mau); 
T:= tu div UCLN(tu,mau) ; M := mau div UCLN(tu,mau); 
Write(‘Nhap vao tu so va mau so:’); 
Readln(tu,mau); 
T := 6 div UCLN(6,10) M := 10 div UCLN(6,10); 
Writeln(‘ Phan so toi gian = ’, T, 3, ‘ / ’, M); 
5); 
Readln; 
Readln; 
END. 
END. 
UUSSCCLLNN==22; ; 
Nhap vao tu so va mau so: 6 10 
Phan so toi gian = 3/5 
2 2 
12
So sánh sự giống và khác nhau 
của thủ tục và hàm 
13
14 
Giống nhau: 
 Đều là chương trình con, có cấu 
trúc giống một chương trình. 
 Đều có thể chứa các tham số, 
cùng tuân theo các quy định về 
khai báo và sử dụng các loại 
tham số này. (Có thể không có 
tham số).
15 
Khác nhau: 
Thủ tục Hàm 
Thủ tục bắt đầu bằng 
procedure. 
Đầu hàm bắt đầu bằng từ khóa function 
HGàm luôn trả về một giá trị thuộc kiểu 
xác định thông qua tên hàm. (các kiểu 
dữ liệu đơn giản: integer, real, boolean, 
char, string). 
Phải chỉ ra kết quả của hàm thuộc kiểu 
dữ liệu nào. 
Trong thân hàm thường có câu lệnh gán 
giá trị cho tên hàm.
Các nhóm xem ví dụ 2: Minbaso 
(SGK/102) xác định: 
• Tên hàm, danh sách tham số, kiểu dữ 
liệu của hàm? 
• Biến toàn cục và biến cục bộ (nếu 
có)? 
• Hs giải thích: Min(Min(a,b),c) ? 
• Cho biết hàm trên trả về kết quả gì? 
Cho ví dụ? 
16
17 
Mời bạn nhấp vào 
hình
Trắc nghiệm 
Câu 1: Nói về cấu trúc của một chương trình con, 
khẳng định nào sau đây là không đúng? 
A. Phần đầu và phần thân nhất thiết phải có,phần 
khai báo có thể có hoặc không; 
B. Phần khai báo có thể có hoặc không tùy thuộc 
vào từng chương trình cụ thể; 
C. Phần đầu có thể có hoặc không có; 
D. Phần đầu nhất thiết phải có để khai báo tên 
chương trình con;
Trắc nghiệm 
Câu 2: Để khai báo hàm trong Pascal bắt đầu bằng từ khóa: 
A. Function B. Var C. Procedure D. Program 
Câu 3: Sự khác biệt cơ bản giữa hàm và thủ tục: 
A. Hàm có sử dụng biến số còn thủ tục thì không có biến 
số; 
B. Xây dựng hàm khó hơn thủ tục; 
C. Hàm sẽ trả về một giá trị thông qua tên của hàm còn 
thủ tục thì không; 
D. Thủ tục khai báo trước phần thân chương trinh còn 
hàm thì sau phần thân chương trình;
Trắc nghiệm 
Câu 4: Có một hàm được định nghĩa như sau: 
Function ABC(m, n: byte): byte; 
Var x, y, z: byte; 
Begin 
……. 
ABC:= z; 
End; 
Hãy chọn lời gọi hàm hợp lệ: 
A. k:= ABC(2,5) + ABC(3,7) + ABC(4); 
B. k:= ABC(7); 
C. k:= ABC(5) + ABC(9); 
D. writeln(ABC(ABC(5,4),9));
Trắc nghiệm 
Câu 5: Giả sử ta có phần đầu thủ tục: 
Procedure VD(var N, M: integer; E: real); 
Thì nhận định nào sau đây là đúng: 
A. N, M và E là các tham trị; 
B. N, M là tham trị, E là tham biến; 
C. N, M là tham biến, E là tham trị; 
D. N, M và E là các tham biến;

More Related Content

What's hot

Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Sân Ngoài Còn Lá
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiHòa Hoàng
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11HaBaoChau
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong Cpnanhvn
 
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giảnLớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giảnHeo_Con049
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hocLong Tibbers
 
Sổ tay thư viện hàm ngôn ngữ C
Sổ tay thư viện hàm ngôn ngữ CSổ tay thư viện hàm ngôn ngữ C
Sổ tay thư viện hàm ngôn ngữ Cvncoding
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnMr Giap
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 
Giao trinh c++ aptech
Giao trinh c++ aptechGiao trinh c++ aptech
Giao trinh c++ aptechTấn Nhật
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtMôi Trường Việt
 
Huong dan su dung va debug voi dev c++
Huong dan su dung va debug voi dev c++Huong dan su dung va debug voi dev c++
Huong dan su dung va debug voi dev c++tuandong_ptit
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2pnanhvn
 

What's hot (18)

Chuong trinh con
Chuong trinh conChuong trinh con
Chuong trinh con
 
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
 
Bai 6
Bai 6Bai 6
Bai 6
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loại
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11
 
Session 09
Session 09Session 09
Session 09
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong C
 
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giảnLớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hoc
 
Sổ tay thư viện hàm ngôn ngữ C
Sổ tay thư viện hàm ngôn ngữ CSổ tay thư viện hàm ngôn ngữ C
Sổ tay thư viện hàm ngôn ngữ C
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Giao trinh c++ aptech
Giao trinh c++ aptechGiao trinh c++ aptech
Giao trinh c++ aptech
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
 
Huong dan su dung va debug voi dev c++
Huong dan su dung va debug voi dev c++Huong dan su dung va debug voi dev c++
Huong dan su dung va debug voi dev c++
 
Bai 8
Bai 8Bai 8
Bai 8
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2
 

Viewers also liked

Lớp 8: Bai thuc hanh 1
Lớp 8: Bai thuc hanh 1Lớp 8: Bai thuc hanh 1
Lớp 8: Bai thuc hanh 1Heo_Con049
 
Bài 12: Kiểu xâu (Tiết 1)
Bài 12: Kiểu xâu (Tiết 1)Bài 12: Kiểu xâu (Tiết 1)
Bài 12: Kiểu xâu (Tiết 1)Châu Trần
 
Bài 1: Khái niệm lập trình và ngôn ngữ lập trình
Bài 1: Khái niệm lập trình và ngôn ngữ lập trìnhBài 1: Khái niệm lập trình và ngôn ngữ lập trình
Bài 1: Khái niệm lập trình và ngôn ngữ lập trìnhChâu Trần
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn
 
Giải bài tập Tin học 11 SGK
Giải bài tập Tin học 11 SGKGiải bài tập Tin học 11 SGK
Giải bài tập Tin học 11 SGKHảo Hảo
 
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danGiao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danVõ Tâm Long
 

Viewers also liked (12)

Bg cau trucrenhanh
Bg cau trucrenhanhBg cau trucrenhanh
Bg cau trucrenhanh
 
Lớp 8: Bai thuc hanh 1
Lớp 8: Bai thuc hanh 1Lớp 8: Bai thuc hanh 1
Lớp 8: Bai thuc hanh 1
 
Tin11k2
Tin11k2Tin11k2
Tin11k2
 
Tin11
Tin11Tin11
Tin11
 
Bài 12: Kiểu xâu (Tiết 1)
Bài 12: Kiểu xâu (Tiết 1)Bài 12: Kiểu xâu (Tiết 1)
Bài 12: Kiểu xâu (Tiết 1)
 
Bai 11 kieu mang (tiet 1)
Bai 11 kieu mang (tiet 1)Bai 11 kieu mang (tiet 1)
Bai 11 kieu mang (tiet 1)
 
Bài 1: Khái niệm lập trình và ngôn ngữ lập trình
Bài 1: Khái niệm lập trình và ngôn ngữ lập trìnhBài 1: Khái niệm lập trình và ngôn ngữ lập trình
Bài 1: Khái niệm lập trình và ngôn ngữ lập trình
 
Bai 15
Bai 15Bai 15
Bai 15
 
Bai18 Tin học 10
Bai18 Tin học 10Bai18 Tin học 10
Bai18 Tin học 10
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
 
Giải bài tập Tin học 11 SGK
Giải bài tập Tin học 11 SGKGiải bài tập Tin học 11 SGK
Giải bài tập Tin học 11 SGK
 
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danGiao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
 

Similar to Bai 18

Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8lethilien1993
 
Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11Bich Tuyen
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5thanhyu
 
3 Function
3 Function3 Function
3 FunctionCuong
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 
3 Function
3 Function3 Function
3 FunctionCuong
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_libraryHồ Lợi
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 HamCuong
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoHuy Nguyễn
 

Similar to Bai 18 (20)

Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8
 
Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5
 
3 Function
3 Function3 Function
3 Function
 
Chương Trình Con
Chương Trình Con Chương Trình Con
Chương Trình Con
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 
3 Function
3 Function3 Function
3 Function
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
C9 templates
C9 templatesC9 templates
C9 templates
 
C9 templates
C9 templatesC9 templates
C9 templates
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Con tro ham c++
Con tro ham c++Con tro ham c++
Con tro ham c++
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 

More from Thi Thanh Thuan Tran (20)

Bài 13: Một số hệ điều hành thông dụng
Bài 13: Một số hệ điều hành thông dụngBài 13: Một số hệ điều hành thông dụng
Bài 13: Một số hệ điều hành thông dụng
 
Bài 11: Tệp và quản lí tệp
Bài 11: Tệp và quản lí tệpBài 11: Tệp và quản lí tệp
Bài 11: Tệp và quản lí tệp
 
Tiet 1 tin hoc la mot nganh khoa hoc
Tiet 1 tin hoc la mot nganh khoa hocTiet 1 tin hoc la mot nganh khoa hoc
Tiet 1 tin hoc la mot nganh khoa hoc
 
De12 (2)
De12 (2)De12 (2)
De12 (2)
 
De12
De12De12
De12
 
C3 t10
C3 t10C3 t10
C3 t10
 
C3 t10
C3 t10C3 t10
C3 t10
 
C2 t10
C2 t10C2 t10
C2 t10
 
Tin001 001 dechuan_mc_mix
Tin001 001 dechuan_mc_mixTin001 001 dechuan_mc_mix
Tin001 001 dechuan_mc_mix
 
Dekiemtra15p1
Dekiemtra15p1Dekiemtra15p1
Dekiemtra15p1
 
Bài 11 các thao tác với csdlqh tiết 1 _v2
Bài 11 các thao tác với csdlqh  tiết 1 _v2Bài 11 các thao tác với csdlqh  tiết 1 _v2
Bài 11 các thao tác với csdlqh tiết 1 _v2
 
Bg tin12 bai6_bieu_mau
Bg tin12 bai6_bieu_mauBg tin12 bai6_bieu_mau
Bg tin12 bai6_bieu_mau
 
Bai giang bai 1 tin hoc 12
Bai giang bai 1 tin hoc 12Bai giang bai 1 tin hoc 12
Bai giang bai 1 tin hoc 12
 
Giaoandientu bai10lop12
Giaoandientu bai10lop12Giaoandientu bai10lop12
Giaoandientu bai10lop12
 
Giaoandientu bai10lop12
Giaoandientu bai10lop12Giaoandientu bai10lop12
Giaoandientu bai10lop12
 
Bg cau trucrenhanh
Bg cau trucrenhanhBg cau trucrenhanh
Bg cau trucrenhanh
 
Bai giang bai 22
Bai giang bai 22Bai giang bai 22
Bai giang bai 22
 
Mangthongtintoancauinternet
MangthongtintoancauinternetMangthongtintoancauinternet
Mangthongtintoancauinternet
 
Bai20
Bai20Bai20
Bai20
 
Bai 19taovalamviecvoibang
Bai 19taovalamviecvoibangBai 19taovalamviecvoibang
Bai 19taovalamviecvoibang
 

Bai 18

  • 1. Viết chương trình xuất ra màn hình hình chữ nhật có dạng: ********** * * ********** 1
  • 2. procedure Ve_HCN; begin Writeln(‘**********’); Writeln(‘* *’); Writeln(‘**********’); end; 2 function LT(x,y: integer): integer var t, i: integer; begin t:= 1; for i:= 1 to n do t:= t*x; LT:= t; end.
  • 3. 3
  • 4. 1. Các viết và sử dụng thủ tục procedure Ve_HCN; begin Writeln(‘**********’); Writeln(‘* *’); Writeln(‘**********’); end; Program VD_thutuc1; procedure Ve_HCN; begin Writeln(‘**********’); Writeln(‘* *’); Writeln(‘**********’); end; Begin Ve_HCN; Writeln; Ve_HCN; Writeln; Ve_HCN; End. 4
  • 5. 1. Cách viết và sử dụng thủ tục  Cấu trúc của thủ tục: procedure <tên thủ tục>[(<danh sách tham số>)]; [<phần khai báo>] begin [<dãy các lệnh>] end; Trong phần khai báo gồm những khai báo gì? Trong đó:  Phần đầu thủ tục: gồm tên procedure và tên thủ tục, danh sách tham số (nếu có).  Phần khai báo: xác định các hằng, kiểu, biến và xác định các chương trình con khác được sử dụng trong thủ tục.  Dãy câu lệnh: viết giữa cặp tên dành riêng begin và end. 5
  • 6. Quan sát VD_thuctuc1/96 + VD_thutuc2/98 cho biết:  Input và Output của 2 chương trình.  Tên thủ tục, danh sách tham số, phần khai báo, các dãy lệnh.  Vị trí và cách gọi thủ tục trong chương trình chính. 6
  • 7. Vị trí và cách gọi thủ tục Program VD_thutuc2; Uses crt; var a,b: byte; Procedure Ve_HCN( chdai,chrong:integer); Var i,j: integer; Begin For i:=1 to chdai do write(‘ * ’); Writeln; For j:=1 to chrong-2 do begin write(‘ * ’); for i:=1 to chdai-2 do write(‘ ‘); writeln(‘ * ’); end; For i:=1 to chdai Do write(‘ * ’); writeln; End; BEGIN clrscr; Ve_HCN(25,10); Writeln; a:=5 ; b:=10; Ve_HCN(a,b); readln; END. Vị trí của chương trình con: nằm sau phần khai báo và trước phần thân chương trình chính Khi cần gọi đến thủ tục ta cần gọi tên của nó kèm theo danh sách tham số (nếu có) 7
  • 8. 2. Tham số và cách truyền tham số  Tham số tại nơi gọi: tham số thực  Tham số tại nơi được gọi: tham số hình thức. Kiểu tham số hình thức Khai báo Giá trị của tham số thực tương ứng sau khi thực thi chương trình con Tham số giá trị (Tham trị) Không có VAR Giữ nguyên giá trị ban đầu như trước khi gọi chương trình con. Tham số biến (Tham biến) Procedure Ve_HCN( chdai,chrong:integer) Có VAR Lấy giá trị kết quả của chương trình Procedure Hoan_Doi( var x, y:integer) con. 8
  • 9. Nhóm quan sát 2 chương trình Gv demo và đọc tham khảo SGK (VD_thambien1 và VD_thambien2 /99,100) cho biết: -Hai chương trình trên có sử dụng chương trình con hay không? Và cho biết chương trình con đó thực hiện nhiệm vụ gì?(nếu có). -Xác định tham số giá trị và tham biến trong hai chương trình vừa demo? (nếu có). -Phân biệt tham số giá trị và tham số biến? 7 phút 9
  • 10. 3. Cách viết và sử dụng hàm  Cấu trúc của hàm: Function <tên hàm>[(<danh sách tham số>)]:<kiểu dữ liệu >; [<phần khai báo>] begin [<dãy các lệnh>] <tên hàm>:= <biểu thức> end; Kiểu dữ liệu trả về có thể gồm những kiểu nào? Kiểu dữ liệu chỉ có thể là kiểu dữ liệu chuẩn: integer, real, char, boolean, string. <tên hàm>:= <biểu thức> câu lệnh gán giá trị cho tên hàm 10
  • 11. VD: Viết chương trình rút gọn phân số Ví dụ: Nhập: 6/10 => ra 3/5 * INPUT : Nhập phân số a/b; * OUTPUT : Phân số T/M- Trong đó: T = a/UCLN(a,b); M = 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 T, M trong chương trình chính. 11
  • 12. Program tgps; Uses crt; Var tu,mau,T,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 BEGIN Write(‘ Nhap vao tu so vμ mau so:’); readln(tu,mau); T:= tu div UCLN(tu,mau) ; M := mau div UCLN(tu,mau); Write(‘Nhap vao tu so va mau so:’); Readln(tu,mau); T := 6 div UCLN(6,10) M := 10 div UCLN(6,10); Writeln(‘ Phan so toi gian = ’, T, 3, ‘ / ’, M); 5); Readln; Readln; END. END. UUSSCCLLNN==22; ; Nhap vao tu so va mau so: 6 10 Phan so toi gian = 3/5 2 2 12
  • 13. So sánh sự giống và khác nhau của thủ tục và hàm 13
  • 14. 14 Giống nhau:  Đều là chương trình con, có cấu trúc giống một chương trình.  Đều có thể chứa các tham số, cùng tuân theo các quy định về khai báo và sử dụng các loại tham số này. (Có thể không có tham số).
  • 15. 15 Khác nhau: Thủ tục Hàm Thủ tục bắt đầu bằng procedure. Đầu hàm bắt đầu bằng từ khóa function HGàm luôn trả về một giá trị thuộc kiểu xác định thông qua tên hàm. (các kiểu dữ liệu đơn giản: integer, real, boolean, char, string). Phải chỉ ra kết quả của hàm thuộc kiểu dữ liệu nào. Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm.
  • 16. Các nhóm xem ví dụ 2: Minbaso (SGK/102) xác định: • Tên hàm, danh sách tham số, kiểu dữ liệu của hàm? • Biến toàn cục và biến cục bộ (nếu có)? • Hs giải thích: Min(Min(a,b),c) ? • Cho biết hàm trên trả về kết quả gì? Cho ví dụ? 16
  • 17. 17 Mời bạn nhấp vào hình
  • 18. Trắc nghiệm Câu 1: Nói về cấu trúc của một chương trình con, khẳng định nào sau đây là không đúng? A. Phần đầu và phần thân nhất thiết phải có,phần khai báo có thể có hoặc không; B. Phần khai báo có thể có hoặc không tùy thuộc vào từng chương trình cụ thể; C. Phần đầu có thể có hoặc không có; D. Phần đầu nhất thiết phải có để khai báo tên chương trình con;
  • 19. Trắc nghiệm Câu 2: Để khai báo hàm trong Pascal bắt đầu bằng từ khóa: A. Function B. Var C. Procedure D. Program Câu 3: Sự khác biệt cơ bản giữa hàm và thủ tục: A. Hàm có sử dụng biến số còn thủ tục thì không có biến số; B. Xây dựng hàm khó hơn thủ tục; C. Hàm sẽ trả về một giá trị thông qua tên của hàm còn thủ tục thì không; D. Thủ tục khai báo trước phần thân chương trinh còn hàm thì sau phần thân chương trình;
  • 20. Trắc nghiệm Câu 4: Có một hàm được định nghĩa như sau: Function ABC(m, n: byte): byte; Var x, y, z: byte; Begin ……. ABC:= z; End; Hãy chọn lời gọi hàm hợp lệ: A. k:= ABC(2,5) + ABC(3,7) + ABC(4); B. k:= ABC(7); C. k:= ABC(5) + ABC(9); D. writeln(ABC(ABC(5,4),9));
  • 21. Trắc nghiệm Câu 5: Giả sử ta có phần đầu thủ tục: Procedure VD(var N, M: integer; E: real); Thì nhận định nào sau đây là đúng: A. N, M và E là các tham trị; B. N, M là tham trị, E là tham biến; C. N, M là tham biến, E là tham trị; D. N, M và E là các tham biến;