F Trong chươngtrình chính, dùng lời gọi thñ tôc vµ truyÒn c¸c tham sè víi gi¸ trị khác nhau để vẽ các hình chữ nhËt kh¸c... Ví dụ 2: Viết chương trình tráo đổi giá trị của 2 biến..[r]
Trang 1Bµi 18
Gi¸o ¸n ®iÖn tö tin häc líp 11
Lop11.com
Trang 2Ví dụ 1: Lập chương trình vẽ các hình chữ nhật bằng dấu * có kích thước khác nhau.
Theo bạn để viết chương trình cho ví
dụ trên ta nên dùng loại chương trình con nào?
F Dùng chương trình con thủ tục
Ve_HCN(dai,rong) để vẽ một hình chữ nhật
F Trong chương trình chính, dùng lời gọi thủ tục và truyền các tham số với giá trị khác nhau để vẽ các hình chữ
nhật khác
Ví dụ: Ve_HCN(25,20); Ve_HCN(3,7)
Lop11.com
Trang 3Các em hãy viết
một thủ tục
Ve_HCN bằng
dấu * với chiều
dài, rộng bất kì!
**********************************
* *
* *
* *
**********************************
Dài
Rộng
F Vẽ cạnh trên của HCN
F Vẽ hai cạnh bên
F Vẽ cạnh dưới
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;
Lop11.com
Trang 4Program VD;
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.
BiÕn côc bé
Tham sè thùc sù (tham trÞ)
Tham sè h×nh thøc BiÕn toµn côc
Lop11.com
Trang 5Ví dụ 2: Viết chương trình tráo đổi giá trị của 2 biến
- Viết 1 thủ tục: Hoán đổi giá trị của 2 biến (a,b)
ta dùng 1 biến trung gian (tg)
tg : =a;
a:=b;
b:=tg;
Lop11.com
Trang 6Program VD;
Uses crt;
var a,b: integer;
Procedure Hoan_doi (Var 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 biÕn)
Tham sè h×nh thøc BiÕn toµn côc
Lop11.com
Trang 7VD1: Lập chương trình tính tổng luỹ thừa S = am +bn +cp +dq
F Viết chương trình con dạng tổng quát Luythua = xk
Trong đó: Luythua, x kiểu thực, k kiểu nguyên
F Khi tính luỹ thừa của các số hạng trong tổng trên ta chỉ cần gọi tên chương trình con Luythua và thay thế (x,k) bằng các giá trị tương ứng Ví dụ như:
Luythua(a,m) luythua(b,n), luythua(c,p),luythua(d,q)
* INPUT : Các cơ số a,b,c,d và các số mũ lần lượtn,m,p,q
* OUTPUT : S
Lop11.com
Trang 8Program 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.
Lop11.com