Bài 18. Ví dụ về cách viết và sử dụng chương trình con

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Thị Tình
Ngày gửi: 08h:17' 23-03-2022
Dung lượng: 2.8 MB
Số lượt tải: 425
Nguồn:
Người gửi: Nguyễn Thị Tình
Ngày gửi: 08h:17' 23-03-2022
Dung lượng: 2.8 MB
Số lượt tải: 425
Số lượt thích:
1 người
(Lưu Thị Lệ Quyên)
CHƯƠNG IV.
CHƯƠNG TRÌNH CON
VÀ LẬP TRÌNH CÓ CẤU TRÚC
GIÁO VIÊN: NGUYỄN THỊ TÌNH
TIN HỌC LỚP 11
TRƯỜNG THPT KHOÁI CHÂU
TỔ SINH – TIN – CN
NỘI DUNG
Cách viết và sử dụng thủ tục.
a. Cấu trúc thủ tục
b. Sử dụng thủ tục
c. Tham số hình thức
d. Ví dụ về thủ tục
2. Cách viết và sử dụng hàm.
a. Cấu trúc của hàm
b. Sử dụng hàm
c. Ví dụ về hàm.
3. Phân biệt hàm và thủ tục.
BÀI 18: CÁCH VIẾT VÀ SỬ DỤNG CTC
PROCEDURE[<(DS các tham số hình thức)>];
[]
BEGIN
[]
END;
1. Cách viết và sử dụng thủ tục
- Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức nếu có.
- Phần khai báo: các hằng, kiểu, biến và cũng có thể các chương trình con.
- Phần thân: dãy các lệnh viết giữa Begin và end;
a. Cấu trúc thủ tục:
b. Sử dụng thủ tục:
Lệnh gọi:
[<(Danh sách tham số thực sự)>];
Thủ tục được khai báo và mô tả trong phần khai báo của chương trình chính, ngay sau phần khai báo biến.
Lời gọi thủ tục được thực hiện trong của chương trình chính
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức:
Tham số biến
Khai báo:
VAR:
Trong lệnh gọi thủ tục: các tham số thực sự là tên các biến chứa dữ liệu ra.
Giá trị có thể bị thay đổi sau khi thực hiện xong thủ tục.
Tham số giá trị
Khai báo:
:
Giá trị không thay đổi khi thực hiện xong thủ tục.
Trong lệnh gọi thủ tục: các tham số thực sự là các giá trị cụ thể (hằng, biến, biểu thức…)
1. Cách viết và sử dụng thủ tục
d. Các Ví dụ:
* * * * *
* *
* * * * *
VD1: Viết Ct vẽ 5 hình chữ nhật có dạng:
PROGRAM VIDU1;
Procedure Ve_HCN;
BEGIN
Writeln(‘* * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * *’);
END;
BEGIN {Chuong trinh chinh}
For i:=1 to 5 do Ve_HCN;
Readln;
END.
1. Cách viết và sử dụng thủ tục
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Cho biết phần đầu của thủ tục Ve_HCN sẽ thay đổi như thế nào?
Procedure Ve_HCN ( cdai, crong: integer);
Tham số hình thức.
1. Cách viết và sử dụng thủ tục
Procedure Ve_HCN;
Program VD2;
Var a,b,i :integer;
Procedure Ve_HCN(cdai, crong :integer);
Var i,j: integer;
Begin
for i:= 1 to cdai do Write(‘*’);
writeln;
for j:= 1 to crong-2 do
begin
Write(‘*’);
for i:= 1 to cdai-2 do Write(‘ ‘);
writeln(‘*’);
End;
for i:= 1 to cdai do Write(‘*’); Writeln;
End;
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Begin
Ve_HCN(25,10);
Ve_HCN(5,10);
readln;
a:=2; b:=4;
For i:= 1 to 4 do
Begin
Ve_HCN(a,b);
readln;
a:=a*2; b:=b*2;
End; readln;
End.
Program VD_thambien1;
Var a,b, :integer;
Procedure Hoan_doi (Var x,y :integer);
Var TG: integer;
Begin
TG: = x;
x: = y;
y: = TG;
End;
Begin
a:=5; b:=10;
Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
End.
VD3: Viết chương trình hoán đổi giá trị của 2 biến x,y.
Cho biết kết quả hiện trên màn hình khi thực hiện chương trình?
2. Cách viết và sử dụng hàm.
Cấu trúc của hàm:
Function[()]: ;
[]
Begin
[]
:= ;
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, boolean, char, string)
Hàm được sử dụng như thế nào trong chương trình?
b. Sử dụng hàm:
+ Việc sử dụng hàm tương tự như sử dụng các hàm chuẩn.
+ Lệnh gọi hàm có thể tham gia vào biểu thức như 1 toán hạng hoặc làm tham số cho chương trình con khác.
Ví dụ: a:=UCLN(tuso,mauso)+5;
write(UCLN(tuso,mauso);
2. Cách viết và sử dụng hàm.
c. Ví dụ về hàm:
Ví dụ 1: Lập chương trình thực hiện việc rút gọn một phân số, trong đó có sử dụng hàm tính ước số chung lớn nhất (ƯCLN) của hai số nguyên.
2. Cách viết và sử dụng hàm.
HÃY XÁC ĐỊNH
Trong chương trình có mấy hàm?
Hàm UCLN dùng để làm gì?
Biến nào là biến toàn cục?
Biến nào là biến cục bộ?
Tham số hình thức là tham biến hay tham trị?
Lời gọi hàm:
Câu lệnh gán giá trị cho tên hàm?
UCLN:=x
Chương trình rút gọn phân số
tuso,mauso,a
sodu
Tham trị: x,y:integer
a:=UCNL(tuso,mauso)
Program Rutgon_phanso;
Var tuso,mauso,a:integer;
Begin
Write(‘Nhap tu so, mau so’); Readln(tuso,mauso);
a:=UCNL(tuso,mauso);
If a>1 Then
Begin
tuso:=tuso div a; mauso:=mauso div a;
End;
Write(tuso:5, mauso:5);
End.
Function UCLN(x,y:integer):integer;
Var sodu:integer;
Begin
While y<>0 Do
Begin
sodu:=x mod y; x:=y; y:=sodu;
End; UCLN:=x;
End;
Có một hàm
Tìm UCLN của x,y
Chương trình rút gọn phân số
Ví dụ 2: Viết chương trình tìm số nhỏ nhất trong 3 số.
(xây dựng hàm tính giá trị nhỏ nhất của 2 số)
Giả sử x = 3, y = 7
=> số nhỏ nhất là x = 3.
Làm thế nào để biết được số nhỏ nhất?
So sánh giá trị của 2 số. Nếu x>y thì số nhỏ nhất là y, ngược lại số nhỏ nhất là x.
Chương trình tìm số nhỏ nhất trong 3 số
Program Minbaso;
var a, b, c: real;
Begin
Write(‘ Nhap vao ba so’); Readln(a,b,c);
Writeln(‘So nho nhat trong 3 so la:’,Min(Min(a,b),c));
Readln
End.
Biến toàn cục:
Tham số giá trị:
Hàm sử dụng làm tham số hay tham gia biểu thức?
a,b,c
x,y
Làm tham số
Function Min(x,y:real):real;
Begin
if x>y then Min:=y
else Min:=x;
End;
Chương trình tìm số nhỏ nhất trong 3 số
3. Phân biệt hàm và thủ tục.
Cấu trúc hàm
Function[()]:; []
Begin
[]
:= ;
End;
Procedure[()];
[]
Begin
[]
End;
Cấu trúc thủ tục
So sánh sự giống và khác nhau của hàm và thủ tục?
2. Cách viết và sử dụng hàm.
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ể có tham số (tham biến hoặc tham trị), cùng tuân theo quy định về khai báo và sử dụng của các tham số này.
Khác nhau:
+ Việc thực hiện hàm luôn trả về giá trị thuộc kiểu xác định qua tên hàm còn thủ tục thì không trả về giá trị qua tên của nó.
+ Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm.
So sánh hàm và thủ tục
Ví du 3: Viết chương trình con tính tổng của 2 số nguyên nhập vào từ bàn phím.
Function Tong(x,y:integer):integer;
Begin
Tong:=x+y;
End;
Procedure Tong(x,y:integer; var t:integer);
Begin
t:=x+y;
End;
Nên sử dụng thủ tục hay hàm?
Sử dụng hàm
Sử dụng thủ tục
=> Nên sử dụng hàm
Ví dụ 4: Viết chương trình con kiểm tra số nguyên a là số chẵn hay số lẻ.
Procedure KT(a:integer);
Begin
IF a mod 2 = 0 Then
Write(‘ La so chan’)
Else Write(‘La so le);
End;
Function KT(a:integer):boolean;
Begin
IF a mod 2 = 0 Then
KT:=true
Else KT:=false;
End;
Sử dụng thủ tục
Sử dụng hàm
Nên sử dụng thủ tục hay hàm?
=> Nên sử dụng thủ tục
Khi nào thì sử dụng hàm, khi nào thì sử dụng thủ tục?
Khi cần thực hiện một công việc nào đó người ta dùng thủ tục, còn khi cần tính một giá trị nào đó người ta dùng hàm.
Củng cố
Cách viết và sử dụng thủ tục.
a. Cấu trúc thủ tục
b. Sử dụng thủ tục
c. Tham số hình thức
d. Ví dụ về thủ tục
2. Cách viết và sử dụng hàm.
a. Cấu trúc của hàm
b. Sử dụng hàm
c. Ví dụ về hàm.
3. Phân biệt hàm và thủ tục
Bài tập
Bài 1:Viết chương trình con kiểm tra 1 số nguyên là số âm hay số dương?
Bài 2: Viết chương trình con tính tổng bình phương của 2 số nguyên.
Bài 3. Viết chương trình con tính chu vi và diện tích của hình chữ nhật. Sau đó thực hiện lời gọi 2 chương trình con này trong chương trình chính với các kích thước khác nhau của hình chữ nhật.
Xin chào các em!
CHƯƠNG TRÌNH CON
VÀ LẬP TRÌNH CÓ CẤU TRÚC
GIÁO VIÊN: NGUYỄN THỊ TÌNH
TIN HỌC LỚP 11
TRƯỜNG THPT KHOÁI CHÂU
TỔ SINH – TIN – CN
NỘI DUNG
Cách viết và sử dụng thủ tục.
a. Cấu trúc thủ tục
b. Sử dụng thủ tục
c. Tham số hình thức
d. Ví dụ về thủ tục
2. Cách viết và sử dụng hàm.
a. Cấu trúc của hàm
b. Sử dụng hàm
c. Ví dụ về hàm.
3. Phân biệt hàm và thủ tục.
BÀI 18: CÁCH VIẾT VÀ SỬ DỤNG CTC
PROCEDURE
[
BEGIN
[
END;
1. Cách viết và sử dụng thủ tục
- Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức nếu có.
- Phần khai báo: các hằng, kiểu, biến và cũng có thể các chương trình con.
- Phần thân: dãy các lệnh viết giữa Begin và end;
a. Cấu trúc thủ tục:
b. Sử dụng thủ tục:
Lệnh gọi:
Thủ tục được khai báo và mô tả trong phần khai báo của chương trình chính, ngay sau phần khai báo biến.
Lời gọi thủ tục được thực hiện trong
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức:
Tham số biến
Khai báo:
VAR
Trong lệnh gọi thủ tục: các tham số thực sự là tên các biến chứa dữ liệu ra.
Giá trị có thể bị thay đổi sau khi thực hiện xong thủ tục.
Tham số giá trị
Khai báo:
Giá trị không thay đổi khi thực hiện xong thủ tục.
Trong lệnh gọi thủ tục: các tham số thực sự là các giá trị cụ thể (hằng, biến, biểu thức…)
1. Cách viết và sử dụng thủ tục
d. Các Ví dụ:
* * * * *
* *
* * * * *
VD1: Viết Ct vẽ 5 hình chữ nhật có dạng:
PROGRAM VIDU1;
Procedure Ve_HCN;
BEGIN
Writeln(‘* * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * *’);
END;
BEGIN {Chuong trinh chinh}
For i:=1 to 5 do Ve_HCN;
Readln;
END.
1. Cách viết và sử dụng thủ tục
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Cho biết phần đầu của thủ tục Ve_HCN sẽ thay đổi như thế nào?
Procedure Ve_HCN ( cdai, crong: integer);
Tham số hình thức.
1. Cách viết và sử dụng thủ tục
Procedure Ve_HCN;
Program VD2;
Var a,b,i :integer;
Procedure Ve_HCN(cdai, crong :integer);
Var i,j: integer;
Begin
for i:= 1 to cdai do Write(‘*’);
writeln;
for j:= 1 to crong-2 do
begin
Write(‘*’);
for i:= 1 to cdai-2 do Write(‘ ‘);
writeln(‘*’);
End;
for i:= 1 to cdai do Write(‘*’); Writeln;
End;
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Begin
Ve_HCN(25,10);
Ve_HCN(5,10);
readln;
a:=2; b:=4;
For i:= 1 to 4 do
Begin
Ve_HCN(a,b);
readln;
a:=a*2; b:=b*2;
End; readln;
End.
Program VD_thambien1;
Var a,b, :integer;
Procedure Hoan_doi (Var x,y :integer);
Var TG: integer;
Begin
TG: = x;
x: = y;
y: = TG;
End;
Begin
a:=5; b:=10;
Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
End.
VD3: Viết chương trình hoán đổi giá trị của 2 biến x,y.
Cho biết kết quả hiện trên màn hình khi thực hiện chương trình?
2. Cách viết và sử dụng hàm.
Cấu trúc của hàm:
Function
[
Begin
[
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, boolean, char, string)
Hàm được sử dụng như thế nào trong chương trình?
b. Sử dụng hàm:
+ Việc sử dụng hàm tương tự như sử dụng các hàm chuẩn.
+ Lệnh gọi hàm có thể tham gia vào biểu thức như 1 toán hạng hoặc làm tham số cho chương trình con khác.
Ví dụ: a:=UCLN(tuso,mauso)+5;
write(UCLN(tuso,mauso);
2. Cách viết và sử dụng hàm.
c. Ví dụ về hàm:
Ví dụ 1: Lập chương trình thực hiện việc rút gọn một phân số, trong đó có sử dụng hàm tính ước số chung lớn nhất (ƯCLN) của hai số nguyên.
2. Cách viết và sử dụng hàm.
HÃY XÁC ĐỊNH
Trong chương trình có mấy hàm?
Hàm UCLN dùng để làm gì?
Biến nào là biến toàn cục?
Biến nào là biến cục bộ?
Tham số hình thức là tham biến hay tham trị?
Lời gọi hàm:
Câu lệnh gán giá trị cho tên hàm?
UCLN:=x
Chương trình rút gọn phân số
tuso,mauso,a
sodu
Tham trị: x,y:integer
a:=UCNL(tuso,mauso)
Program Rutgon_phanso;
Var tuso,mauso,a:integer;
Begin
Write(‘Nhap tu so, mau so’); Readln(tuso,mauso);
a:=UCNL(tuso,mauso);
If a>1 Then
Begin
tuso:=tuso div a; mauso:=mauso div a;
End;
Write(tuso:5, mauso:5);
End.
Function UCLN(x,y:integer):integer;
Var sodu:integer;
Begin
While y<>0 Do
Begin
sodu:=x mod y; x:=y; y:=sodu;
End; UCLN:=x;
End;
Có một hàm
Tìm UCLN của x,y
Chương trình rút gọn phân số
Ví dụ 2: Viết chương trình tìm số nhỏ nhất trong 3 số.
(xây dựng hàm tính giá trị nhỏ nhất của 2 số)
Giả sử x = 3, y = 7
=> số nhỏ nhất là x = 3.
Làm thế nào để biết được số nhỏ nhất?
So sánh giá trị của 2 số. Nếu x>y thì số nhỏ nhất là y, ngược lại số nhỏ nhất là x.
Chương trình tìm số nhỏ nhất trong 3 số
Program Minbaso;
var a, b, c: real;
Begin
Write(‘ Nhap vao ba so’); Readln(a,b,c);
Writeln(‘So nho nhat trong 3 so la:’,Min(Min(a,b),c));
Readln
End.
Biến toàn cục:
Tham số giá trị:
Hàm sử dụng làm tham số hay tham gia biểu thức?
a,b,c
x,y
Làm tham số
Function Min(x,y:real):real;
Begin
if x>y then Min:=y
else Min:=x;
End;
Chương trình tìm số nhỏ nhất trong 3 số
3. Phân biệt hàm và thủ tục.
Cấu trúc hàm
Function
Begin
[
End;
Procedure
[
Begin
[
End;
Cấu trúc thủ tục
So sánh sự giống và khác nhau của hàm và thủ tục?
2. Cách viết và sử dụng hàm.
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ể có tham số (tham biến hoặc tham trị), cùng tuân theo quy định về khai báo và sử dụng của các tham số này.
Khác nhau:
+ Việc thực hiện hàm luôn trả về giá trị thuộc kiểu xác định qua tên hàm còn thủ tục thì không trả về giá trị qua tên của nó.
+ Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm.
So sánh hàm và thủ tục
Ví du 3: Viết chương trình con tính tổng của 2 số nguyên nhập vào từ bàn phím.
Function Tong(x,y:integer):integer;
Begin
Tong:=x+y;
End;
Procedure Tong(x,y:integer; var t:integer);
Begin
t:=x+y;
End;
Nên sử dụng thủ tục hay hàm?
Sử dụng hàm
Sử dụng thủ tục
=> Nên sử dụng hàm
Ví dụ 4: Viết chương trình con kiểm tra số nguyên a là số chẵn hay số lẻ.
Procedure KT(a:integer);
Begin
IF a mod 2 = 0 Then
Write(‘ La so chan’)
Else Write(‘La so le);
End;
Function KT(a:integer):boolean;
Begin
IF a mod 2 = 0 Then
KT:=true
Else KT:=false;
End;
Sử dụng thủ tục
Sử dụng hàm
Nên sử dụng thủ tục hay hàm?
=> Nên sử dụng thủ tục
Khi nào thì sử dụng hàm, khi nào thì sử dụng thủ tục?
Khi cần thực hiện một công việc nào đó người ta dùng thủ tục, còn khi cần tính một giá trị nào đó người ta dùng hàm.
Củng cố
Cách viết và sử dụng thủ tục.
a. Cấu trúc thủ tục
b. Sử dụng thủ tục
c. Tham số hình thức
d. Ví dụ về thủ tục
2. Cách viết và sử dụng hàm.
a. Cấu trúc của hàm
b. Sử dụng hàm
c. Ví dụ về hàm.
3. Phân biệt hàm và thủ tục
Bài tập
Bài 1:Viết chương trình con kiểm tra 1 số nguyên là số âm hay số dương?
Bài 2: Viết chương trình con tính tổng bình phương của 2 số nguyên.
Bài 3. Viết chương trình con tính chu vi và diện tích của hình chữ nhật. Sau đó thực hiện lời gọi 2 chương trình con này trong chương trình chính với các kích thước khác nhau của hình chữ nhật.
Xin chào các em!
 








Các ý kiến mới nhất