Bài 17. Chương trình con và phân loại

Chia sẻ bởi Lê Quang Tuấn | Ngày 10/05/2019 | 80

Chia sẻ tài liệu: Bài 17. Chương trình con và phân loại thuộc Tin học 11

Nội dung tài liệu:


Chào mừng quý thầy cô về dự giờ thăm lớp
Trường THPT Cẩm Bình
GVGD: Kiều Thị Thúy
Bộ môn: Tin học.
Tổ : Toán - Tin
Tính tổng luỹ thừa sau:
?
24
35
54
44
Nhóm trưởng
16
243
256
625
1140
Với những bài toán phức tạp, thường đòi hỏi và nói chung có thể phân thành các bài toán con.

Tương tự, khi lập trình để giải bài toán trên máy tính có thể phân chia chương trình thành các khối (modul), mỗi khối bao gồm các lệnh giải một bài toán con nào đó. Mỗi khối lệnh sẽ được xây dựng thành một chương trình con. Sau đó chương trình chính sẽ được xây dựng từ các chương trình con này. Chương trình con cũng có thể được xây dựng thành các chương trình con khác.

Cách lập trình như vậy dựa trên phương pháp lập trình có cấu trúc và chương trình được xây dựng gọi là chương trình có cấu trúc.
úy
Chương VI: CHƯƠNG TRÌNH CON
VÀ LẬP TRÌNH CÓ CẤU TRÚC
Bài 17:
Chương trình con và phân loại
Viết chương tính tổng luỹ thừa sau :
luythua1:=1.0;
for i:=1 to n do
luythua1:= luythua1 * a;
an = a * a * a * … * a
n
Ta thấy:
Đoạn chương trình thực hiện tính an như sau:
Program tinh_tong;
Var tluythua,luythua1,luythua2, luythua3:real;
a, b, c :real; i,n,m,p : integer;
Begin
write(‘nhap du lieu theo thu tu a, b, c,m, n, p: ‘);
readln(a, b, c, m,n ,p);

luythua1:=1.0;
for i:=1 to n do
luythua1:= luythua1 * a;
luythua2:=1.0;
for i:=1 to m do
luythua2:= luythua2 * b ;
luythua3:=1.0;
for i:=1 to p do
luythua3:= luythua3 * c ;
Tluythua := luythua1 + luythua2 + luythua3 ;
Writeln(‘Tong luy thua = ‘, tluythua :8:4);
End.
Lặp đi lặp lại những đoạn lệnh tương tự nhau  chương trình vừa dài vừa khó theo dõi, khó hiệu chỉnh
Function luythua(x:real; k:integer) : real;
Var i:integer; tich:real;
Begin
tich := 1.0;
for i := 1 to k do
tich := tich * x;
luythua := tich;
End;
Chương trình con tính lũy thừa dạng tổng quát
Program tinhtong;
Var
T,a, b,c:Real;
m,n,p : Integer
Function Luythua(x:Real; k:Integer): Real;
Var i:Integer;
tich:Real;
Begin
tich :=1.0;
For i:=1 To k Do
tich:=tich* x ;
Luythua:=tich;
End;

BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
Luythua( a, m)
Luythua( b, n)
Luythua( c, p ) ;
+
+
T:=
Nhap du lieu a,b,c,m,n,p
a =
2
; m =
2
b =
3
; n =
3
c =
4
; p =
4
Luythua( 2, 2)
4
Luythua( 3, 3)
Function Luythua(x:Real; k:Integer): Real;
Var i :Integer;
tich:Real;
Begin
tich :=1.0;
For i:=1 To k Do
tich:=tich * x ;
Luythua:=tich;
End;

Function Luythua(x:Real; k:Integer): Real;
Var i :Integer;
tich:Real;
Begin
tich :=1.0;
For i:=1 To k Do
tich:=tich* x ;
Luythua:=tich;
End;

27
Luythua( 4, 4 ) ;
64
Function Luythua(x:Real; k:Integer): Real;
Var i :Integer;
tich:Real;
Begin
tich :=1.0;
For i:=1 To k Do
tich:=tich * x ;
Luythua:=tich;
End;

T=95
Function luythua(x:real; k:integer): real;
Var i : integer;
tich : real;
Begin
tich :=1.0;
For i:=1 To k Do
tich:=tich* x ;
Luythua:=tich;
End;

END.
Chương trình trên viết theo kiểu chương trình con
1. Khái niệm chương trình con
Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
Lợi ích của việc sử dụng chương trình con:
- Tránh việc phải viết lặp đi lặp lại một dãy lệnh nào đó.
- Hỗ trợ việc thực hiện các chương trình lớn
- Phục vụ cho quá trình trừu tượng hoá
- Mở rộng khả năng ngôn ngữ
- Thuận tiện cho phát triển nâng cấp chương trình
D? vi?t chuong trỡnh gi?i cỏc b�i toỏn l?n, ph?c t?p ngu?i l?p trỡnh cú th? chia th�nh nhi?u b�i toỏn nh?, m?i b�i toỏn l� m?t dóy l?nh mụ t? m?t s? thao tỏc nh?t d?nh (g?i l� ctc). Sau dú ghộp n?i cỏc chuong trỡnh con th�nh chuong trỡnh chớnh.
Nhóm trưởng
Việc A
Vi?c B
Hỗ trợ việc thực hiện các chương trình lớn:
2. Phân loại và cấu trúc chương trình con
Phân loại : thường gồm 2 loại hàm và thủ tục
Hàm
(Function)
Là chương trình con
Thực hiện một số thao tác nào đó.
Trả về giá trị qua tên hàm
Thủ tục
(Procedure)
Là chương trình con
Thực hiện một số thao tác nào đó
VD:
Sqr(3)  9
upcase(‘a’) ‘A’
VD:
readln(a,b,c);
writeln(s);
b. Cấu trúc chương trình con

[]

Giải thích:
Phần đầu bắt buộc phải có, gồm tên chương trình con, các tham số của chương trình con. Các tham số này được gọi là tham số hình thức.
Phần khai báo thường có thể là khai báo biến hoặc hằng
Phần thân là một dãy các lệnh thực hiện nhiệm vụ nhất định của chương trình con.
Function luythua(x:real; k:integer):real;
Var i:integer; tich:real;
Begin
tich:=1.0;
for i:=1 to k do
tich:=tich * x;
luythua:= tich;
End;
Procedure tinhtong;
Var T,a, b,c:Real;
m,n,p : Integer;

Function luythua(x:real; k:integer): real;
Var i : integer;
tich : real;
Begin
tich :=1.0;
For i:=1 To k Do
tich := tich* x ;
Luythua := tich;
End;

BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
T:= luythua(a,n) + luythua(b,m) + luythua(c,p);
writeln(‘Tong luy thua: ’, T:8:4);
END.






Các CTC thường được đặt sau phần khai báo của chương trình chính.
CTC chỉ được thực hiện khi có lời gọi nó.
Hãy cho biết vị trí của chương trình con trong chương trình chính?
Chương trình con được thực hiện khi nào?
Procedure tinhtong;
Var T,a, b,c:Real;
m,n,p : Integer;

Function luythua(x:real; k:integer): real;
Var
i : integer;
tich : real;
Begin
tich :=1.0;
For i:=1 to k do
tich := tich* x ;
Luythua := tich;
End;

BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
T:= luythua(a,n) + luythua(b,m) + luythua(c,p);
writeln(‘Tong luy thua: ’, T:8:4);
END.







Biến khai báo ở CT chính có tác dụng ở mọi chương trình gọi là biến toàn bộ.
Biến được khai báo ở trong CTC chỉ có tác dụng trong CTC gọi là biến cục bộ.
Biến đượ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à các tham số thực sự.
Biến toàn bộ
Biến cục bộ
Tham số hình thức
Tham số thực sự
Program tinhtong;
Var
T,a, b,c:Real;
m,n,p : Integer
BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
T:=
Luythua( a, n)
Luythua( b, m)
Luythua( c, p ) ;
Function luythua(x:real; k:integer): real;
Var i : integer;
tich : real;
Begin
tich :=1.0;
For i:=1 To k Do
tich := tich* x ;
Luythua := tich;
End;
END
+
+
c. Thực hiện chương trình con
Lời gọi chương trình con:

Tên chương trình con
Tham số (nếu có)
Ví dụ:
Sqr(9)
Tên chương trình con
Tham số thực sự
- Sau khi chương trình con kết thúc, lệnh tiếp theo lệnh gọi chương trình sẽ được thực hiện
Củng cố
Khái niệm chương trình con
Hai loại chương trình con:
+ Hàm
+ Thủ tục
Cấu trúc chương trình con
+ Biến toàn cục
+ Biến cục bộ
+ Tham số hình thức
+ Tham số thực sự
+ Lời gọi chương trình con
Bài tập về nhà:
- Xem trước bài 18: Ví dụ về cách viết và sử dụng chương trình con
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Lê Quang Tuấn
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)