Bài 17. Chương trình con và phân loại
Chia sẻ bởi Trần Thị Ngọc Duyên |
Ngày 10/05/2019 |
97
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:
Thuật toán tính an
B1: Lt 1; i 1;
B2: Nếu i > n Thì sang bước 4
B3: Lt Lt * a ;
i i + 1 ;
Quay lại bước 2;
B4: In kết quả Lt và kết thúc
KIỂM TRA BÀI CŨ
Hãy trình bày giải thuật tính lũy thừa an và viết đoạn chương trình tính lũy thừa an.
Đoạn chương trình tính an:
Var
LuyThua, a: real;
n, i: integer;
Begin
LuyThua:= 1.0;
For i:=1 to n do
LuyThua:= LuyThua*a;
End.
Xét bài toán tính tổng bốn lũy thừa: Tluythua = an + bm + cp + dq
Giả sử em là nhóm trưởng của một nhóm 4 người. Em hãy nói cách tổ chức nhóm mình để đưa ra kết quả bài toán trên nhanh nhất?
Tluythua
Xét bài toán tính tổng bốn lũy thừa: Tluythua = an + bm + cp + 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.
- Quá trình làm “Mịn” như thế được gọi là cách thiết kế từ trên xuống.
Xét bài toán tính tổng bốn lũy thừa:
TLuyThua = an+ bm + cp + dq
Làm việc theo nhóm: Mỗi nhóm trình bày giải thuật của 1 lũy thừa:
Thuật toán tính
B1: Lt 1; i 1;
B2: Nếu i > n Thì chuyển sang bước 4
B3: Lt Lt * a ;
i i + 1;
Quay lại bước 2;
B4: In kết quả Lt và kết thúc
bm
cp
dq
an
b
m
c
p
d
q
Viết chương trình tính tổng: Tluythua = an + bm + cp +dq
Luythua1:=1.0;
For i:=1 to n Do Luythua1:=Luythua1*a;
Program Tinh_tong;
Var TLuythua, Luythua1, Luythua2,Luythua3,Luythua4:real;
a,b,c,d:real;
i,n,m,p,q:Integer;
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);
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;
TLuythua:=Luythua1+ Luythua2+ Luythua3+ Luythua4;
Writeln(‘Tong Luy thua =‘, TLuythua:8:4);
Readln;
End.
Em nhận xét gì về bốn đoạn chương trình này?
* Để xử lý vấn đề này các ngôn ngữ lập trình bậc cao cung cấp khả năng xây dựng các chương trình con dạng tổng quát “đại diện” cho nhiều đoạn lệnh tương tự nhau.
Ví dụ: Tính luỹ thừa
Luythua = xk
Trong đó Luythua và x là giá trị kiểu thực, k thuộc kiểu nguyên
Đây là chương trình con được đặt tên là Luythua(x,k)
Nhận xét: trong chương trình có 4 đoạn lệnh tương tự nhau, việc lặp lại những đoạn lệnh tương tự nhau làm cho chương trình vừa dài vừa khó theo dõi.
Viết chương trình tính tổng: Tluythua = an + bm + cp +dq
Function Luythua(x: real, k: integer): real;
Var i: Integer;
Begin
Tich:=1.0;
For i:=1 to k Do Tich:=Tich*x;
Luythua:=Tich;
End;
Program Tinh_tong;
Var TLuythua : real; a,b,c,d : real;
i,n,m,p,q : Integer;
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:=
;
Writeln(‘Ket qua la = ‘, TLuythua:8:4);
Readln;
End.
Chương trình con
Thực hiện (gọi) chương trình con
Chương trình chính
Viết chương trình tính tổng: S = an + bm + cp +dq
CHƯƠNG TRÌNH CON LÀ GÌ?
Với x = a và k = n thì:
an =
Với x = b và k = m thì
bm =
Với x = c và k = p thì
cp =
Với x = d và k = q thì
dq =
Luythua(a,n)
Luythua(b,m)
Luythua(c,p)
Luythua(d,q)
+
Tính xk
+
+
CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
Chương 6:
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.
Function Luythua(x: real, k: integer): real;
Var i: Integer;
Begin
Tich:=1.0;
For i:=1 to k Do Tich:=Tich*x;
Luythua:=Tich;
End;
Ví dụ:
Tránh được việc phải viết lặp đi 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
Phục vụ cho 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à không 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ữ thành thư viện cho nhiều người dùng.
Thuận tiện cho phát triển, nâng cấp chương trình
ví dụ: bài TLuythua
ví dụ: quản lí điểm học sinh, quản lí nhân viên, …
ví dụ: việc sử dụng các hàm toán học
ví dụ: các thủ tục write, readln, …
ví dụ: việc sửa đổi cách tính điểm trong chương trình quản lí điểm
Bài tập: Viết đoạn CTC để tính n! = 1.2...n.
Function GiaiThua(n:Word):Word;
Var P, i:Word;
Begin
P:=1;
For i:=1 To n Do P:=P*i;
GiaiThua:=P;
End;
Bài tập: Viết hàm tìm Max của 2 số thực x,y
Var a,b:Real;
Function Max(x,y:Real):Real;
Begin
If x>y Then Max:=x Else Max:=y;
End;
Begin
Write(‘Nhap a=’); Readln(a);
Write(‘Nhap b=’); Readln(b);
Writeln(‘So lon nhat trong 2 so la: ‘, Max(a,b));
Readln;
End.
Khi nào thì các em dùng đến chương trình con?
Nêu các lợi ích cơ bản của việc sử dụng chương trình con?
Củng cố:
Trong tiết này, chúng ta đã tìm hiểu khái niệm chương trình con và lợi ích của nó. Về nhà, các em nghiên cứu lại nội dung bài và tìm hiểu trước “phân loại và cấu trúc của chương trình con”.
B1: Lt 1; i 1;
B2: Nếu i > n Thì sang bước 4
B3: Lt Lt * a ;
i i + 1 ;
Quay lại bước 2;
B4: In kết quả Lt và kết thúc
KIỂM TRA BÀI CŨ
Hãy trình bày giải thuật tính lũy thừa an và viết đoạn chương trình tính lũy thừa an.
Đoạn chương trình tính an:
Var
LuyThua, a: real;
n, i: integer;
Begin
LuyThua:= 1.0;
For i:=1 to n do
LuyThua:= LuyThua*a;
End.
Xét bài toán tính tổng bốn lũy thừa: Tluythua = an + bm + cp + dq
Giả sử em là nhóm trưởng của một nhóm 4 người. Em hãy nói cách tổ chức nhóm mình để đưa ra kết quả bài toán trên nhanh nhất?
Tluythua
Xét bài toán tính tổng bốn lũy thừa: Tluythua = an + bm + cp + 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.
- Quá trình làm “Mịn” như thế được gọi là cách thiết kế từ trên xuống.
Xét bài toán tính tổng bốn lũy thừa:
TLuyThua = an+ bm + cp + dq
Làm việc theo nhóm: Mỗi nhóm trình bày giải thuật của 1 lũy thừa:
Thuật toán tính
B1: Lt 1; i 1;
B2: Nếu i > n Thì chuyển sang bước 4
B3: Lt Lt * a ;
i i + 1;
Quay lại bước 2;
B4: In kết quả Lt và kết thúc
bm
cp
dq
an
b
m
c
p
d
q
Viết chương trình tính tổng: Tluythua = an + bm + cp +dq
Luythua1:=1.0;
For i:=1 to n Do Luythua1:=Luythua1*a;
Program Tinh_tong;
Var TLuythua, Luythua1, Luythua2,Luythua3,Luythua4:real;
a,b,c,d:real;
i,n,m,p,q:Integer;
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);
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;
TLuythua:=Luythua1+ Luythua2+ Luythua3+ Luythua4;
Writeln(‘Tong Luy thua =‘, TLuythua:8:4);
Readln;
End.
Em nhận xét gì về bốn đoạn chương trình này?
* Để xử lý vấn đề này các ngôn ngữ lập trình bậc cao cung cấp khả năng xây dựng các chương trình con dạng tổng quát “đại diện” cho nhiều đoạn lệnh tương tự nhau.
Ví dụ: Tính luỹ thừa
Luythua = xk
Trong đó Luythua và x là giá trị kiểu thực, k thuộc kiểu nguyên
Đây là chương trình con được đặt tên là Luythua(x,k)
Nhận xét: trong chương trình có 4 đoạn lệnh tương tự nhau, việc lặp lại những đoạn lệnh tương tự nhau làm cho chương trình vừa dài vừa khó theo dõi.
Viết chương trình tính tổng: Tluythua = an + bm + cp +dq
Function Luythua(x: real, k: integer): real;
Var i: Integer;
Begin
Tich:=1.0;
For i:=1 to k Do Tich:=Tich*x;
Luythua:=Tich;
End;
Program Tinh_tong;
Var TLuythua : real; a,b,c,d : real;
i,n,m,p,q : Integer;
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:=
;
Writeln(‘Ket qua la = ‘, TLuythua:8:4);
Readln;
End.
Chương trình con
Thực hiện (gọi) chương trình con
Chương trình chính
Viết chương trình tính tổng: S = an + bm + cp +dq
CHƯƠNG TRÌNH CON LÀ GÌ?
Với x = a và k = n thì:
an =
Với x = b và k = m thì
bm =
Với x = c và k = p thì
cp =
Với x = d và k = q thì
dq =
Luythua(a,n)
Luythua(b,m)
Luythua(c,p)
Luythua(d,q)
+
Tính xk
+
+
CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
Chương 6:
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.
Function Luythua(x: real, k: integer): real;
Var i: Integer;
Begin
Tich:=1.0;
For i:=1 to k Do Tich:=Tich*x;
Luythua:=Tich;
End;
Ví dụ:
Tránh được việc phải viết lặp đi 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
Phục vụ cho 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à không 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ữ thành thư viện cho nhiều người dùng.
Thuận tiện cho phát triển, nâng cấp chương trình
ví dụ: bài TLuythua
ví dụ: quản lí điểm học sinh, quản lí nhân viên, …
ví dụ: việc sử dụng các hàm toán học
ví dụ: các thủ tục write, readln, …
ví dụ: việc sửa đổi cách tính điểm trong chương trình quản lí điểm
Bài tập: Viết đoạn CTC để tính n! = 1.2...n.
Function GiaiThua(n:Word):Word;
Var P, i:Word;
Begin
P:=1;
For i:=1 To n Do P:=P*i;
GiaiThua:=P;
End;
Bài tập: Viết hàm tìm Max của 2 số thực x,y
Var a,b:Real;
Function Max(x,y:Real):Real;
Begin
If x>y Then Max:=x Else Max:=y;
End;
Begin
Write(‘Nhap a=’); Readln(a);
Write(‘Nhap b=’); Readln(b);
Writeln(‘So lon nhat trong 2 so la: ‘, Max(a,b));
Readln;
End.
Khi nào thì các em dùng đến chương trình con?
Nêu các lợi ích cơ bản của việc sử dụng chương trình con?
Củng cố:
Trong tiết này, chúng ta đã tìm hiểu khái niệm chương trình con và lợi ích của nó. Về nhà, các em nghiên cứu lại nội dung bài và tìm hiểu trước “phân loại và cấu trúc của 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ẻ: Trần Thị Ngọc Duyê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)