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 đầ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.
Trong phần khai báo
gồm những khai báo
gì?
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
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.
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ó)
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
Vị trí và cách gọi thủ tụ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)
Có VAR Lấy giá trị kết quả của chương trình
con.
Procedure Ve_HCN( chdai,chrong:integer)
Procedure Hoan_Doi( var x, y:integer)
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
Write(‘ Nhap vao tu so vµ mau so:’); readln(tu,mau);
T:= tu div UCLN(tu,mau) ; M := mau div UCLN(tu,mau);
Writeln(‘ Phan so toi gian = ’, T, ‘ / ’, M);
Readln;
END.
Write(‘Nhap vao tu so va mau so:’);
T := 6 div M := 10 divUCLN(6,10) UCLN(6,10);
Writeln(‘ Phan so toi gian = ’, 3, ‘ / ’, 5);
Readln;
END.
BEGIN
Readln(tu,mau);
USCLN=2;USCLN=2;
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
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.
Khác nhau:
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;
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;
Trắc nghiệm

More Related Content

Viewers also liked

Vi du ve cach viet va dung chuong trinh con
Vi du ve cach viet va dung chuong trinh conVi du ve cach viet va dung chuong trinh con
Vi du ve cach viet va dung chuong trinh conLau De
 
Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Hong Phuoc Nguyen
 
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
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascaldalat
 
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
 
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
 
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
 
Bai giang tin hoc lop 11 bai 14 15
Bai giang tin hoc lop 11 bai 14   15Bai giang tin hoc lop 11 bai 14   15
Bai giang tin hoc lop 11 bai 14 15Chi Lệ
 
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ...
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18:  VÍ DỤ VỀ CÁCH VIẾT VÀ...Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18:  VÍ DỤ VỀ CÁCH VIẾT VÀ...
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ...Bảo Hàn Quân
 
Chude09_Amazon Kindle and Apps
Chude09_Amazon Kindle and AppsChude09_Amazon Kindle and Apps
Chude09_Amazon Kindle and AppsTrần Nhân
 
Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5Sunkute
 
Bai 20 mang may tinh
Bai 20 mang may tinhBai 20 mang may tinh
Bai 20 mang may tinhthaohien1376
 

Viewers also liked (19)

Vi du ve cach viet va dung chuong trinh con
Vi du ve cach viet va dung chuong trinh conVi du ve cach viet va dung chuong trinh con
Vi du ve cach viet va dung chuong trinh con
 
Bai 18 tiet 2
Bai 18  tiet 2Bai 18  tiet 2
Bai 18 tiet 2
 
Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)
 
Bai 18 tiet 1
Bai 18  tiet 1Bai 18  tiet 1
Bai 18 tiet 1
 
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
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascal
 
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
 
Bai 18
Bai 18Bai 18
Bai 18
 
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
 
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
 
tin học lớp 6
tin học lớp 6tin học lớp 6
tin học lớp 6
 
Bai giang tin hoc lop 11 bai 14 15
Bai giang tin hoc lop 11 bai 14   15Bai giang tin hoc lop 11 bai 14   15
Bai giang tin hoc lop 11 bai 14 15
 
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ...
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18:  VÍ DỤ VỀ CÁCH VIẾT VÀ...Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18:  VÍ DỤ VỀ CÁCH VIẾT VÀ...
Trần Thúc Bảo - Tin Học 11 - Chương 6 - BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ...
 
Chuong trinh con
Chuong trinh conChuong trinh con
Chuong trinh con
 
Chude09_Amazon Kindle and Apps
Chude09_Amazon Kindle and AppsChude09_Amazon Kindle and Apps
Chude09_Amazon Kindle and Apps
 
Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5
 
Diigo
DiigoDiigo
Diigo
 
HDH
HDHHDH
HDH
 
Bai 20 mang may tinh
Bai 20 mang may tinhBai 20 mang may tinh
Bai 20 mang may tinh
 

Similar to Bài 18 tin hoc 11

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
 
Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8lethilien1993
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hocLong Tibbers
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11K33LA-KG
 
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
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
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
 
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
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...CodeGym Đà Nẵng
 

Similar to Bài 18 tin hoc 11 (20)

Bai 17
Bai 17Bai 17
Bai 17
 
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
 
Tai lieu boi duong tin 8
Tai lieu boi duong tin 8Tai lieu boi duong tin 8
Tai lieu boi duong tin 8
 
Chương Trình Con
Chương Trình Con Chương Trình Con
Chương Trình Con
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hoc
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
 
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
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Debug trong c
Debug trong cDebug trong c
Debug trong c
 
Unit Test
Unit TestUnit Test
Unit Test
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
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 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++
 
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
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
 

More from HaBaoChau

Tìm hiểu về prezi
Tìm hiểu về preziTìm hiểu về prezi
Tìm hiểu về preziHaBaoChau
 
Tìm hiểu về snagit window movie maker
Tìm hiểu về snagit window movie makerTìm hiểu về snagit window movie maker
Tìm hiểu về snagit window movie makerHaBaoChau
 
Phần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyPhần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyHaBaoChau
 
Phần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyPhần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyHaBaoChau
 
Bài 22 tin học 10
Bài 22 tin học 10Bài 22 tin học 10
Bài 22 tin học 10HaBaoChau
 
Bài 21 tin học 10
Bài 21 tin học 10Bài 21 tin học 10
Bài 21 tin học 10HaBaoChau
 
Bài 20 tin học 10
Bài 20 tin học 10Bài 20 tin học 10
Bài 20 tin học 10HaBaoChau
 
Bài 1 tin hoc 12
Bài 1 tin hoc 12Bài 1 tin hoc 12
Bài 1 tin hoc 12HaBaoChau
 
K37103025 ha baochau_skype
K37103025 ha baochau_skypeK37103025 ha baochau_skype
K37103025 ha baochau_skypeHaBaoChau
 
K37103025 ha baochau_google+
K37103025 ha baochau_google+K37103025 ha baochau_google+
K37103025 ha baochau_google+HaBaoChau
 
K37103025 ha baochau_google+
K37103025 ha baochau_google+K37103025 ha baochau_google+
K37103025 ha baochau_google+HaBaoChau
 
Tin11 chuong04 bai_13
Tin11 chuong04 bai_13Tin11 chuong04 bai_13
Tin11 chuong04 bai_13HaBaoChau
 
Tin10 chuong04 bai13
Tin10 chuong04 bai13Tin10 chuong04 bai13
Tin10 chuong04 bai13HaBaoChau
 

More from HaBaoChau (15)

Wordpress
WordpressWordpress
Wordpress
 
Tìm hiểu về prezi
Tìm hiểu về preziTìm hiểu về prezi
Tìm hiểu về prezi
 
Edmodo
EdmodoEdmodo
Edmodo
 
Tìm hiểu về snagit window movie maker
Tìm hiểu về snagit window movie makerTìm hiểu về snagit window movie maker
Tìm hiểu về snagit window movie maker
 
Phần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyPhần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duy
 
Phần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duyPhần mềm tạo sơ đồ tư duy
Phần mềm tạo sơ đồ tư duy
 
Bài 22 tin học 10
Bài 22 tin học 10Bài 22 tin học 10
Bài 22 tin học 10
 
Bài 21 tin học 10
Bài 21 tin học 10Bài 21 tin học 10
Bài 21 tin học 10
 
Bài 20 tin học 10
Bài 20 tin học 10Bài 20 tin học 10
Bài 20 tin học 10
 
Bài 1 tin hoc 12
Bài 1 tin hoc 12Bài 1 tin hoc 12
Bài 1 tin hoc 12
 
K37103025 ha baochau_skype
K37103025 ha baochau_skypeK37103025 ha baochau_skype
K37103025 ha baochau_skype
 
K37103025 ha baochau_google+
K37103025 ha baochau_google+K37103025 ha baochau_google+
K37103025 ha baochau_google+
 
K37103025 ha baochau_google+
K37103025 ha baochau_google+K37103025 ha baochau_google+
K37103025 ha baochau_google+
 
Tin11 chuong04 bai_13
Tin11 chuong04 bai_13Tin11 chuong04 bai_13
Tin11 chuong04 bai_13
 
Tin10 chuong04 bai13
Tin10 chuong04 bai13Tin10 chuong04 bai13
Tin10 chuong04 bai13
 

Bài 18 tin hoc 11

  • 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 đầ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. Trong phần khai báo gồm những khai báo gì? 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. 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. 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ó) 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 Vị trí và cách gọi thủ tụ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) Có VAR Lấy giá trị kết quả của chương trình con. Procedure Ve_HCN( chdai,chrong:integer) Procedure Hoan_Doi( var x, y:integer) 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 Write(‘ Nhap vao tu so vµ mau so:’); readln(tu,mau); T:= tu div UCLN(tu,mau) ; M := mau div UCLN(tu,mau); Writeln(‘ Phan so toi gian = ’, T, ‘ / ’, M); Readln; END. Write(‘Nhap vao tu so va mau so:’); T := 6 div M := 10 divUCLN(6,10) UCLN(6,10); Writeln(‘ Phan so toi gian = ’, 3, ‘ / ’, 5); Readln; END. BEGIN Readln(tu,mau); USCLN=2;USCLN=2; 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 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. Khác nhau:
  • 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. 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
  • 20. 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
  • 21. 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; Trắc nghiệm