Bài giảng Ví dụ cách viết và sử dụng chương trình con. Bài giảng xây dựng theo hướng tương tác với học sinh. có các trigger tạo cho bài giảng khả năng tương tác, sinh động hơn. Bài giảng có sự dẫn dắt học sinh đi vào bài mới; Hoạt động nhóm để học sinh tự đọc tài liệu, mở các ô trống bằng các nháy chuột vào ô tương tứng để đưa ra cấu trúc thủ tục
Trang 1Program Tinh_tong;
Var a,b,c,d:real;
m,n,p,q:integer;
TLt:real;
Function Lt(a:real; x : integer) : real;
Var T:real;
i:integer;
Begin
T:=1.0;
For i:=1 to x do T:=T*a;
Lt:=T;
End;
Begin {bắt đầu chương trình chính}
Write(‘nhap a, b,c,d,m,n,p,q:’);readln(a,b,c,d,m,n,p,q);
TLt:=Lt(a,n) +Lt(b,m) +Lt(c,p) + Lt(d,q);
writeln(‘Tong la:’,TLt:8:4);
Readln
End.
KIỂM TRA BÀI CŨ
Trang 2TIẾT 39 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
1 Ví dụ cách viết và sử dụng thủ tục
Ví dụ: Viết chương trình in ra màn
hình 3 hình chữ nhật có dạng:
*******
*******
*******
*******
*******
*******
*******
*******
*******
Program ve_hcn;
Begin
Writeln(‘*******’); Writeln(‘*******’); Writeln(‘*******’);
Writeln;
Writeln(‘*******’); Writeln(‘*******’); Writeln(‘*******’);
Writeln;
Writeln(‘*******’); Writeln(‘*******’); Writeln(‘*******’);
End
Trang 3TIẾT 39 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
1 Ví dụ cách viết và sử dụng thủ tục
Program vidu;
Begin
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
Writeln;
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
Writeln;
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
End
Program vidu;
Procedure Ve_HCN;
Begin
Writeln(‘*******’); Writeln(‘*******’); Writeln(‘*******’);
End;
Begin
Ve_HCN;
Ve_HCN;
Ve_HCN;
End
Trang 4**************
**************
**************
Cột = ch_dai
Dòng = Ch_rong
{Trên mỗi dòng viết ra từ dấu ‘*’ số 1 đến dấu ‘*’ cuối dòng}
For i:=1 to Ch_rong Do
Begin FOR J:=1 to Ch_dai DO Write(‘*’);
Writeln;
end;
Viết ra các hình chữ nhật với kích thước khác nhau
**************
**************
**************
*********
*********
*********
*********
*********
*****
*****
*****
*****
*****
{Duyệt từ dòng 1 đến dòng cuối}
Trang 5PROGRAM ve_hinh_chu_nhat;
USES Crt;
VAR c, n: integer;
Procedure Ve_HCN2(Ch_dai,Ch_rong:integer); Var I, j: integer
Begin
For i:=1 to Ch_rong do
For j:=1 to Ch_dai do Write(‘*’);
End;
BEGIN
Clrscr;
Ve_HCN2(6,10);
Writeln;
n:=14; c:=20; Ve_HCN2(c, n);
END.
Trang 61 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ố>:Kiểu dữ liệu)];
[<phần khai báo>];
Begin
<dãy lệnh của thủ tục>;
End;
TIẾT 39 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
- Phần đầu: gồm tên dành riêng Procedure, tiếp theo là tên thủ tục Danh sách tham số có thể có hoặc không
-Phần khai báo: có thể có hoặc không, dùng để khai báo hằng, biến sử dụng trong chương trình con
-Dãy câu lệnh đặt trong cặp Begin và end; tạo thành phần thân thủ tục
11
Trang 7TIẾT 39 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
1 Ví dụ cách viết và sử dụng thủ tục
Program vidu;
Begin
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
Writeln;
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
Writeln;
Writeln(‘*******’);
Writeln(‘*******’);
Writeln(‘*******’);
End
Program vidu;
Procedure Ve_HCN;
Begin
Writeln(‘*******’); Writeln(‘*******’); Writeln(‘*******’);
End;
Begin
Ve_HCN;
Ve_HCN;
Ve_HCN;
End
Trang 8PROGRAM ve_hinh_chu_nhat;
USES Crt;
VAR c, n: integer;
Procedure Ve_HCN2(Ch_dai,Ch_rong:integer);
Var I, j: integer
Begin
For i:=1 to Ch_rong do
Begin
For j:=1 to Ch_dai do Write(‘*’);
Writeln;
End;
End;
BEGIN
Clrscr;
Ve_HCN2(6,10); Writeln;
n:=14; c:=20; Ve_HCN2(c, n);
END.
BiÕn côc bé
Tham sè thùc sù
Tham sè h×nh
thøc BiÕn toµn côc
Trang 9Program VD;
Uses crt;
var a,b: integer;
Procedure Hoan_doi( x,y:integer);
Var TG: integer;
Begin
TG:= x;
x:= y;
y:=TG;
end;
BEGIN
CLRSCR;
a:= 5 ; b:= 10;
Writeln( a:6 , b:6);
Hoan_doi(a,b);
Writeln( a:6 , b:6);
readln;
END.
BiÕn côc bé
Tham sè thùc sù
Tham sè h×nh
thøc BiÕn toµn côc
Trang 10* Tham số và cách truyền tham số:
Kiểu tham số
hình thức Khai báo tương ứng sau khi thực thi Giá trị của tham số thực
chương trình con
Tham số hình
thức trị Không có VAR trước khi gọi chương trình con.Giữ nguyên giá trị ban đầu như
Tham số hình
thức biến Có VAR trình con.Lấy giá trị kết quả của chương
Tham số hình thức trị -> tham số giá trị gọi tắt là tham trị
Tham số hình thức biến -> tham số biến gọi tắt là tham biến
Trang 112 C¸ch viÕt vµ sö dông hµm:
Function <Tªnhµm> [(<ds tham sè>)] : kiÓu cña hµm ;
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
tªnhµm := gi¸trÞ;
End;
Lưu ý khi sử dụng hàm:
Việc sử dụng hàm tương tự như các hàm chuẩn.
Kết quả trả về qua tên hàm chỉ có thể thuộc các kiểu dữ liệu chuẩn:
integer , real , boolean , char , string
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng và thậm chí là tham số của lời gọi hàm, thủ tục khác.
Trang 12VD: LËp ch ¬ng tr×nh tÝnh tæng luü thõa ư¬ng tr×nh tÝnh tæng luü thõa S = am +bn +cp +dq
VD: LËp ch ¬ng tr×nh tÝnh tæng luü thõa ư¬ng tr×nh tÝnh tæng luü thõa S = am +bn +cp +dq
Trang 13Program tong_luy_thua;
Uses crt;
Var a,b,c,d,S : real;
n,m,p,q :integer;
Function luythua (x: real,k:integer): real;
Var j: integer; Lt:Real;
begin
Lt:=1;
For j:=1 to k do Lt:=Lt*x;
Luythua:=Lt;
end;
BEGIN
Write(‘ Nhap vao cac co so a,b,c,d ‘); readln(a,b,c,d);
write(‘ Nhap vao cac so mu m,n,p,q: ’); readln(n,m,p,q);
s:= luythua(a,m)+luythua(b,n)+luythua(c,p)+luythua(d,q);
Writeln(‘ Tong luy thua =’, S:7:2);
Readln;
END.
Trang 14• BiÕn ® îc khai b¸o ë ưîc khai b¸o ë trong CTC chØ cã t¸c dông trong CTC gäi lµ biÕn côc bé
• BiÕn khai b¸o ë CT chÝnh
cã t¸c dông ë mäi ch ¬ng ưîc khai b¸o ë tr×nh gäi lµ biÕn toµn côc.
• BiÕn ® ưîc khai b¸o ë ợc khai b¸o cho d÷ c khai b¸o cho d÷ liÖu vµo/ra ë CTC gäi lµ
tham sè h×nh thøc
• BiÕn chøa trong lêi gäi CTC ë ch ¬ng tr×nh chÝnh lµ
tham sè thùc sù
Trang 15VD: LËp ch ư¬ng tr×nh tÝnh tæng luü thõa ¬ng tr×nh tèi gi¶n ph©n sè
VD: LËp ch ư¬ng tr×nh tÝnh tæng luü thõa ¬ng tr×nh tèi gi¶n ph©n sè
VÝ dô: nhËp 6/10 => ra 3/5
* INPUT : NhËp ph©n sè a/b;
d = b /¦CLN(a,b) ;
Trang 16Program tgps;
Uses crt;
Var tu,mau,c,d : integer;
Function UCLN( a,b :integer) : integer;
Begin While a<> b do
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);
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 UCLN(6,10) d := 10 div 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);
USCLN=2;
UCLN:=2;
Nhap vao tu so va mau so: 6 10 Phan so toi gian = 3/5
Trang 17H·y nhí!
BiÕn:
Tham sè
- BiÕn khai b¸o cho d÷ liÖu vµo
- BiÕn chøa trong lêi gäi CTC ë
sè thùc sù.