Bài 17. Chương trình con và phân loại
Chia sẻ bởi Nguyễn Thị Thu Hiền |
Ngày 10/05/2019 |
61
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ƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
Chương 6:
Nhắc lại kiến thức :
Cách viết một chương trình cơ bản gồm các bước nào?
Tên chương trình:
ProGram chuong_trinh;
Khai báo biến:
Var x,y:Integer;
a,b:Real;
f1,f2:Text;
Thân chương trình:
Begin
{Các lệnh của chương trình}
End.
BÀI 17:
Là lá la! Hôm nay là ngày trực vệ sinh…
Ta sẽ làm vệ sinh ở lớp nào đây nhỉ?
11A1
11A2
11A3
11A4
Hơ… Hơ. Sao nhiều thế!
Continue…
BÀI 17:
30 phút sau…
Ôi… Mệt… quá!
Phải làm sao bây giờ…!
Àh. Mình có ý này. He he!
BÀI 17:
Cậu dọn lớp này…!
Mình biết rồi!
Còn cậu dọn lớp kia…!
Dạ!
BÀI 17:
BÀI 17:
Câu hỏi: Để làm tốt công việc như tình huống ở trên chúng ta cần phải làm gì?
Trả lời:
Cần phải phân chia công việc cho nhiều người.
BÀI 17:
CHƯƠNG TRÌNH CON VÀ PHÂN LỌAI
BÀI 17:
- Các chương trình giải các bài toán phức tạp thường rất dài.
+ Khó đọc, khó hiểu và khó hiệu chỉnh.
+ Đặt ra vấn đề làm sao dễ đọc, dễ hiểu và dễ hiệu chỉnh hơn.
- Một bài toán thường có thể phân tích thành nhiều bài toán con nhỏ hơn
M
A
B
C
D
BÀI 17:
Vd: Tính lũy thừa = an+bm+cp+dq .
Bài toán trên có thể phân tích thành những bài toán nhỏ hơn là:
Bài toán tính an , tính bm, tính cp, tính dq.
- Với 4 bài toán nhỏ ở trên ta có thể giao cho 4 người giải, như thế công việc sẽ nhẹ nhàng hơn.
- Mỗi bài toán con lại chia thành những bài toán con nhỏ hơn.
- Quá trình làm “Mịn” như thế được gọi là cách thiết kế từ trên xuống.
Vd: Tính = (Sin (a))n + (Cos(b))n .
BÀI 17:
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.
Trưởng nhóm
Việc A
Việc B
BÀI 17:
1. Khái niệm chương trình con.
Viết chương trình tính tổng: an+bm+cp+dq
Program
Var
Tluythua,luythua1, luythua2,luythua3, luythua 4:Real;
a,b,c,d:Real;
i,n,m,p,q:integer;
Tinh_tong;
Begin
Write(‘Hay nhap du lieu theo thu tu a,b,c,d,m,n,p,q’);
Readln(a,b,c,d,m,n,p,q);
Var j:integer
Tich:=1.0;
For j:=1 to n do
Tich:=Tich*a;
BÀI 17:
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;
luythua4:=1.0;
For i:=1 to q do
luythua4:=luythua4*d;
Write(‘Tong luy thua = ’,Tluythua: 8:4);
Tluythua:=luythua1+luythua2+luythua3+luythua4;
Readln;
End.
BÀI 17:
2. Lợi ích của việc sử dụng chương trình con:
- Tránh được sự lập lại cùng một dãy lệnh. Khi cần dùng có thể gọi lại chương trình con đó.
- Hỗ trợ việc thực hiện các chương trình lớn và phức tạp
- Phục vụ quá trình trừu tượng hoá. Người lập trình có thể sử dụng kết quả của chương trình con mà ko cần quan tâm đến chương trình đó đã được cài đặt như thế nào.
- Mở rộng khả năng ngôn ngữ lập trình thành thư viện cho nhiều ngừơi dùng.
- Thuận tiện cho phát triển và nâng cấp chương trình.
CHƯƠNG TRÌNH CON
Hm (Function)
L chuong trỡnh con th?c hi?n m?t s? thao tỏc no dú, v tr? v? m?t giỏ tr? qua tờn c?a nú.
Th? t?c (Procedure)
L chuong trỡnh con th?c hi?n m?t s? thao tỏc no dú, v khụng tr? v? giỏ tr? no qua tờn c?a nú.
Tính tổng luỹ thừa
S = an + bm + cp + dq
Vẽ và đưa ra màn hình 5 hình chữ nhật có kích thước khác nhau.
3. Phân loại chương trình con.
< Phần thân>
Function[()] :ki?u c?a hm;
[< Ph?n khai bỏo >]
Begin
[]
tờnhm := giỏtr?;
End;
Procedure [()];
[< Phan khai bao >]
Begin
[]
End;
Hm (Function)
Th? t?c (Procedure)
3. Phân loại chương trình con.
BÀI 17:
Phương pháp dùng chương trình con
Program
Tinh_tong;
Var
Tluythua:real;
a,b,c,d:real;
n,m,p,q:integer;
Function
luythua(x:real;k:integer):real;
Var
Tich:real;
j:integer;
Begin
End;
Tich:=1.0;
For j:=1 to k do
Tich:=Tich*x;
luythua:=Tich;
BÀI 17:
Phần thân của chương trình chính:
Begin
write(`hay nhap du lieu theo thu tu a,b,c,d,n,m,p,q`);
readln(a,b,c,d,n,m,p,q);
Tluythua:=luythua(a,n)+luythua(b,m)+luythua(c,p)+luythua(d,q);
writeln(`Tong luy thua:=`,Tluythua);
readln;
end.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
Phân loại
Chương trình con thường gồm hai loại
Hàm (Function): Là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó
Thủ tục (Procedure): Là chương trình con thực hiện một số thao tác nhất định nhưng không trả về giá trị qua tên của nó
VD: Sin(x), Cos(x), Sqrt(x) … Length(x)
VD: Writeln, Readln, Delete, …
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
[]
Cấu trúc chương trình con tương tự chương trình chính, nhưng nhất thiết phải có phần đầu để khai báo tên, nếu là Hàm thì phải có khai báo kiểu dữ liệu trả về
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
Phần khai báo: có thể khai báo cho dữ liệu vào và ra, các hằng được sử dụng trong chương trình con.
Phần thân: Là các dãy lệnh được thưc hiện trong chương trình con từ dữ liệu vào và được kết quả như mong muốn.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
Tham số hình thức:
Các biến được khai báo cho dữ liệu vào/ra được gọi là tham số hình thức của chương trình con.
Các biến được khai báo dùng riêng cho chương trình con được gọi là biến cục bộ. Chương trình chính và các chương trình con khác không thể sử dụng được các biến này.
Các biến được khai báo ở chương trình chính là biến toàn cục và các chương trình con đều sử dụng được các biến này.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
c. Thực hiện chương trình con
Tham số thực:
Để thực hiện gọi một chương trình con, ta cần phải có lệnh gọi, bao gồm tên chương trình con với các tham số(nếu có) là các hằng số hoặc biến chứa dữ liệu tương ứng với các tham số hình thức đặt trong cặp ngoặc ( ). Các hằng và biến này được gọi là các tham số thực.
VD: Sqr(225);
Luythua(a,n);
HCN(Chieudai,Chieurong);HCN(5,4)
Bài toán 1: Lập chươ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;
* OUTPUT : Phõn s? c/d - Trong dú: c = a/UCLN (a,b);
d = b/UCLN(a,b);
? Vi?t chuong trỡnh con th?c hi?n tỡm UCLN(a,b) v g?i nú khi tớnh c,d trong chuong trỡnh chớnh.
Program tgps;
Uses crt;
Var tu,mau,c,d : 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);
C := tu div UCLN(tu,mau) ; d := mau div UCLN(tu,mau);
Writeln(` Phan so toi gian = `, c, ` / `, d);
Readln;
END.
Write(`Nhap vao tu so va mau so:`);
C := 6 div
d := 10 div
UCLN(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
Hóy nh?!
? Chuong trỡnh con l m?t dóy l?nh gi?i quy?t m?t bi toỏn con c? th?.
? C?u trỳc chuong trỡnh g?m:
Phân loại chương trình con:
+ Hàm
+ Thủ tục
+ Biến toàn cục
+ Biến cục bộ
+ Tham số hình thức.
+ Tham số thực sự
< Ph?n thõn>
Chương 6:
Nhắc lại kiến thức :
Cách viết một chương trình cơ bản gồm các bước nào?
Tên chương trình:
ProGram chuong_trinh;
Khai báo biến:
Var x,y:Integer;
a,b:Real;
f1,f2:Text;
Thân chương trình:
Begin
{Các lệnh của chương trình}
End.
BÀI 17:
Là lá la! Hôm nay là ngày trực vệ sinh…
Ta sẽ làm vệ sinh ở lớp nào đây nhỉ?
11A1
11A2
11A3
11A4
Hơ… Hơ. Sao nhiều thế!
Continue…
BÀI 17:
30 phút sau…
Ôi… Mệt… quá!
Phải làm sao bây giờ…!
Àh. Mình có ý này. He he!
BÀI 17:
Cậu dọn lớp này…!
Mình biết rồi!
Còn cậu dọn lớp kia…!
Dạ!
BÀI 17:
BÀI 17:
Câu hỏi: Để làm tốt công việc như tình huống ở trên chúng ta cần phải làm gì?
Trả lời:
Cần phải phân chia công việc cho nhiều người.
BÀI 17:
CHƯƠNG TRÌNH CON VÀ PHÂN LỌAI
BÀI 17:
- Các chương trình giải các bài toán phức tạp thường rất dài.
+ Khó đọc, khó hiểu và khó hiệu chỉnh.
+ Đặt ra vấn đề làm sao dễ đọc, dễ hiểu và dễ hiệu chỉnh hơn.
- Một bài toán thường có thể phân tích thành nhiều bài toán con nhỏ hơn
M
A
B
C
D
BÀI 17:
Vd: Tính lũy thừa = an+bm+cp+dq .
Bài toán trên có thể phân tích thành những bài toán nhỏ hơn là:
Bài toán tính an , tính bm, tính cp, tính dq.
- Với 4 bài toán nhỏ ở trên ta có thể giao cho 4 người giải, như thế công việc sẽ nhẹ nhàng hơn.
- Mỗi bài toán con lại chia thành những bài toán con nhỏ hơn.
- Quá trình làm “Mịn” như thế được gọi là cách thiết kế từ trên xuống.
Vd: Tính = (Sin (a))n + (Cos(b))n .
BÀI 17:
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.
Trưởng nhóm
Việc A
Việc B
BÀI 17:
1. Khái niệm chương trình con.
Viết chương trình tính tổng: an+bm+cp+dq
Program
Var
Tluythua,luythua1, luythua2,luythua3, luythua 4:Real;
a,b,c,d:Real;
i,n,m,p,q:integer;
Tinh_tong;
Begin
Write(‘Hay nhap du lieu theo thu tu a,b,c,d,m,n,p,q’);
Readln(a,b,c,d,m,n,p,q);
Var j:integer
Tich:=1.0;
For j:=1 to n do
Tich:=Tich*a;
BÀI 17:
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;
luythua4:=1.0;
For i:=1 to q do
luythua4:=luythua4*d;
Write(‘Tong luy thua = ’,Tluythua: 8:4);
Tluythua:=luythua1+luythua2+luythua3+luythua4;
Readln;
End.
BÀI 17:
2. Lợi ích của việc sử dụng chương trình con:
- Tránh được sự lập lại cùng một dãy lệnh. Khi cần dùng có thể gọi lại chương trình con đó.
- Hỗ trợ việc thực hiện các chương trình lớn và phức tạp
- Phục vụ quá trình trừu tượng hoá. Người lập trình có thể sử dụng kết quả của chương trình con mà ko cần quan tâm đến chương trình đó đã được cài đặt như thế nào.
- Mở rộng khả năng ngôn ngữ lập trình thành thư viện cho nhiều ngừơi dùng.
- Thuận tiện cho phát triển và nâng cấp chương trình.
CHƯƠNG TRÌNH CON
Hm (Function)
L chuong trỡnh con th?c hi?n m?t s? thao tỏc no dú, v tr? v? m?t giỏ tr? qua tờn c?a nú.
Th? t?c (Procedure)
L chuong trỡnh con th?c hi?n m?t s? thao tỏc no dú, v khụng tr? v? giỏ tr? no qua tờn c?a nú.
Tính tổng luỹ thừa
S = an + bm + cp + dq
Vẽ và đưa ra màn hình 5 hình chữ nhật có kích thước khác nhau.
3. Phân loại chương trình con.
< Phần thân>
Function
[< Ph?n khai bỏo >]
Begin
[
tờnhm := giỏtr?;
End;
Procedure
[< Phan khai bao >]
Begin
[
End;
Hm (Function)
Th? t?c (Procedure)
3. Phân loại chương trình con.
BÀI 17:
Phương pháp dùng chương trình con
Program
Tinh_tong;
Var
Tluythua:real;
a,b,c,d:real;
n,m,p,q:integer;
Function
luythua(x:real;k:integer):real;
Var
Tich:real;
j:integer;
Begin
End;
Tich:=1.0;
For j:=1 to k do
Tich:=Tich*x;
luythua:=Tich;
BÀI 17:
Phần thân của chương trình chính:
Begin
write(`hay nhap du lieu theo thu tu a,b,c,d,n,m,p,q`);
readln(a,b,c,d,n,m,p,q);
Tluythua:=luythua(a,n)+luythua(b,m)+luythua(c,p)+luythua(d,q);
writeln(`Tong luy thua:=`,Tluythua);
readln;
end.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
Phân loại
Chương trình con thường gồm hai loại
Hàm (Function): Là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó
Thủ tục (Procedure): Là chương trình con thực hiện một số thao tác nhất định nhưng không trả về giá trị qua tên của nó
VD: Sin(x), Cos(x), Sqrt(x) … Length(x)
VD: Writeln, Readln, Delete, …
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
[
Cấu trúc chương trình con tương tự chương trình chính, nhưng nhất thiết phải có phần đầu để khai báo tên, nếu là Hàm thì phải có khai báo kiểu dữ liệu trả về
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
Phần khai báo: có thể khai báo cho dữ liệu vào và ra, các hằng được sử dụng trong chương trình con.
Phần thân: Là các dãy lệnh được thưc hiện trong chương trình con từ dữ liệu vào và được kết quả như mong muốn.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
Tham số hình thức:
Các biến được khai báo cho dữ liệu vào/ra được gọi là tham số hình thức của chương trình con.
Các biến được khai báo dùng riêng cho chương trình con được gọi là biến cục bộ. Chương trình chính và các chương trình con khác không thể sử dụng được các biến này.
Các biến được khai báo ở chương trình chính là biến toàn cục và các chương trình con đều sử dụng được các biến này.
BÀI 17:
2. Phân loại và cấu trúc của chương trình con.
c. Thực hiện chương trình con
Tham số thực:
Để thực hiện gọi một chương trình con, ta cần phải có lệnh gọi, bao gồm tên chương trình con với các tham số(nếu có) là các hằng số hoặc biến chứa dữ liệu tương ứng với các tham số hình thức đặt trong cặp ngoặc ( ). Các hằng và biến này được gọi là các tham số thực.
VD: Sqr(225);
Luythua(a,n);
HCN(Chieudai,Chieurong);HCN(5,4)
Bài toán 1: Lập chươ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;
* OUTPUT : Phõn s? c/d - Trong dú: c = a/UCLN (a,b);
d = b/UCLN(a,b);
? Vi?t chuong trỡnh con th?c hi?n tỡm UCLN(a,b) v g?i nú khi tớnh c,d trong chuong trỡnh chớnh.
Program tgps;
Uses crt;
Var tu,mau,c,d : 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);
C := tu div UCLN(tu,mau) ; d := mau div UCLN(tu,mau);
Writeln(` Phan so toi gian = `, c, ` / `, d);
Readln;
END.
Write(`Nhap vao tu so va mau so:`);
C := 6 div
d := 10 div
UCLN(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
Hóy nh?!
? Chuong trỡnh con l m?t dóy l?nh gi?i quy?t m?t bi toỏn con c? th?.
? C?u trỳc chuong trỡnh g?m:
Phân loại chương trình con:
+ Hàm
+ Thủ tục
+ Biến toàn cục
+ Biến cục bộ
+ Tham số hình thức.
+ Tham số thực sự
< Ph?n thõn>
* 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ẻ: Nguyễn Thị Thu Hiề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)