1. Trang chủ
  2. » Giáo án - Bài giảng

Bai 17 -Tin 11 - Tiet 39

8 284 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 66 KB

Nội dung

Mục đích yêu cầu Học sinh cần biết:  Chơng trình con thực chất là một khối lệnh tập các lệnh nhằm giải quyết một bài toán con để góp phần giải quyết một bài toán lớn hơn bằng một chơng

Trang 1

Ngời soạn: Hà Trung Hòa Lớp: SP Tin 40

Giáo viên hớng dẫn: Lê Thị Bích Liên

Ngày soạn : 30/09/2008

Ngày giảng : / /2008

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

I Mục đích yêu cầu

Học sinh cần biết:

 Chơng trình con thực chất là một khối lệnh (tập các lệnh) nhằm giải quyết một bài toán con để góp phần giải quyết một bài toán lớn hơn bằng một chơng trình

 Khi phải viết chơng trình dài, phức tạp, việc sử dụng chơng trình con là hết sức cần thiết

II Phơng pháp, phơng tiện giảng bài

Phơng pháp: Thuyết trình, giảng giải

Phơng tiện: SGK, SGV

Bảng phụ:

III Tiến trình bài giảng

Kiểm tra bài cũ: Viết chơng trình tính

LuyThua=an Với a là số thực, n là số

nguyên nhập từ bàn phím

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

1 Khái niệm chơng trình con.

Đáp án:

Program TinhLuyThua;

Var a,LuyThua:real;

i,n:integer;

BEGIN Write(‘Nhap a=’);readln(a);

Write(‘Nhap n=’);readln(n);

LuyThua:=1.0;

For i:=1 to n do LuyThua:=LuyThua*a;

Write(‘Luy thua ‘,a:2:2,’^’,n,’

=’,LuyThua:8:4);

Readln;

END.

Trang 2

Bài toán 1: Tính tổng bốn luỹ thừa:

TLuythua=an+bm+cp+dq

Với a, b, c, d là các số thực, n, m, p, q là

các số nguyên

Input: a, b, c, d kiểu thực; m, n, p, q kiểu

nguyên

Output: Đa ra màn hình kết quả

TLuythua=an + bm + cp + dq.

- Việc chia nhỏ các bài toán thành các

bài toán con đợc gọi là cách thiết kế từ

trên xuống

GV: Các chơng trình giải các bài

toán phức tạp thờng rất dài, có thể gồm rất nhiều lệnh Khi đọc những chơng trình dài rất khó nhận biết đợc chơng trình thực hiện các công việc gì và hiệu chỉnh chơng trình cũng khó khăn Vậy phải cấu trúc chơng trình nh thế nào để cho chơng trình

dễ đọc, dễ hiệu chỉnh, nâng cấp?

Tr-ớc tiên chúng ta đi xét bài toán sau

GV: Đa ra bài toán 1

GV: Theo toán học để giải đợc bài

toán này ta làm nh thế nào?

HS: Ta sẽ tính từng luỹ thừa, sau đó

cộng tổng các luỹ thừa đó lại ta đợc kết quả TLuythua

GV: Giả sử có bài toán sau:

TLuyThua= 63+ 64+ 65+ 66 Khi em là nhóm trởng (nhóm gồm 4 ngời ) và nhóm em nhận đợc bài toán thì làm cách nào để có kết quả nhanh nhất

HS: Trả lời

GV: Nhận xét và khẳng định: Có thể giao cho 4 ngời mỗi ngời thực hiện một bài Giá trị TluyThua là tổng kết quả của bốn bài toán con đó

Trang 3

- Để nâng cao hiệu quả lập trình, các

ngôn ngữ lập trình bậc cao đều cung cấp

khả năng xây dựng 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 đó lũy thừa và x là giá

trị kiểu thực còn k thuộc kiểu nguyên Ta

có thể đặt tên cho chơng trình con này là

luythua và tham số cần thiết là x và k

Khi cần tính luỹ thừa cụ thể ta chỉ cần

viết tên chơng trình con và thay thế (x,k)

bằng giá trị cụ thể tơng ứng

program Tinh_tong;

var TLuyThua,a,b,c,d:real;

m,n,p,q:integer;

GV: áp dụng ý tởng đó trong lập

trình ta sẽ dùng các biến LuyThua1

để tính toán và lu trữ kết quả của an.

Tơng tự LuyThua2, LuyThua3,

LuyThua4 dùng để tính toán và lu trữ

kết quả của bm, cp, dq.

GV: Cả lớp theo dõi chơng trình

tinh_tong trang 92 SGK

GV: Hãy quan sát và cho biết có mấy

khối lệnh đợc viết tơng tự nhau?

HS: Có 4 khối lệnh đợc viết tơng tự

nhau

GV: Bằng trực quan một em cho cô

biết khi viết nh vậy em có nhận xét gì không ?

HS: ở đây có 4 khối lệnh tơng tự nhau đợc lặp đi lặp lại làm cho chơng trình vừa dài, vừa khó theo dõi

GV: Để nâng cao hiệu quả lập trình,

các ngôn ngữ lập trình bậc cao đều cung cấp khả năng xây dựng 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 Chẳng hạn, tính luỹ thừa luythua=xk, trong đó lũy thừa và x là giá trị kiểu thực còn k thuộc kiểu nguyên Ta có thể đặt tên cho chơng trình con này là

luythua và tham số cần thiết là x và k

Khi cần tính luỹ thừa cụ thể ta chỉ cần viết tên chơng trình con và thay thế (x,k) bằng giá trị cụ thể tơng ứng chẳng hạn để tính an , bm, cp, dq ta

viết luythua(a, n), luythua(b, m),

luythua(c, p), luythua(d,q)

GV:Sau đây thầy sẽ giới thiệu cho

các em chơng trình tính TLuyThua

có sử dụng chơng trình con đợc viết bằng ngôn ngữ Pascal

GV: Treo bảng phụ.

GV: Bảng phụ sử dụng một chơng

trình con là hàm LuyThua kiểu thực với các tham số hình thức là x kiểu

Trang 4

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 theo thu tu

a, b, c, d, m, n, p, q:');

readln(a,b,c,d,m,n,p,q);

TLuyThua:=LuyThua(a,m)+LuyThua(b,n)

+LuyThua(c,p)

+LuyThua(d,q);

write('Tong luy thua=',TLuyThua:2:2);

readln;

END.

* Nhận xét: Sử dụng chơng trình con

ơng trình ngắn gọn, dễ theo dõi hơn

ch-ơng trình không sử dụng chch-ơng trình con

thực, k kiểu nguyên Khi cần tính các giá trị cụ thể ta chi việc gọi tên

ch-ơng trình Ví dụ: Tính LuyThua=an

Ta sẽ gọi LuyThua(a,n)

GV: Một em cho thầy biết chơng

trình có sử dụng chơng trình con có ngắn gọn và dễ theo dõi hơn so với chơng trình không sử dụng chơng trình con không?

HS: Trả lời

GV: Nhận xét và khẳng định: Chơng

trình có sử dụng chơng trình con ngắn gọn, dễ theo dõi hơn chơng trình không sử dụng chơng trình con

GV: Theo em, để sản xuất ra đợc một

chiếc xe máy, có phải chỉ cần qua tay một ngời thợ ? Hay phải qua một dây chuyền sản xuất ?

HS: Trả lời GV: Đúng vậy, để sản xuất ra một

chiếc xe máy ngời ta phải phân thành nhiều công đoạn nh sản xuất ra khung xe, yên xe, Mỗi công đoạn

đợc giao cho các tổ lao động chuyên làm một bộ phận Và có một bộ phận chuyên lắp ráp sản phẩm từ các bộ phận nhỏ

GV: Đối với lập trình cũng vậy, khi

lập trình giải toán, ta có thể phân chia chơng trình thành các khối (môđun),

Trang 5

- Khi lập trình giải toán, ta có thể phân

chia chơng trình thành các khối (môđun),

mỗi khối bao gồm các lệnh giải một bài

toán 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 từ 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

* Chú ý: Chơng trình con đôi khi chỉ đợc

dùng đúng một lần xong khi đó nó vẫn có

tác dụng làm sáng sủa chơng trình

Bài toán 2: Viết chơng trình nhập vào số

nguyên dơng N (0 < N < 50) và

dãy số nguyên dơng a1, , an Đa ra số

l-ợng số nguyên tố

Input: Số nguyên dơng ( 0 < N < 50) và

dãy số nguyên dơng a1, , an

Output: Số lợng số nguyên tố.

mỗi khối bao gồm các lệnh giải một bài toán 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 từ 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

GV: Cần chú ý là chơng trình con đôi

khi chỉ đợc dùng đúng một lần xong khi đó nó vẫn có tác dụng làm sáng sủa chơng trình

GV: Để hiểu rõ hơn về việc cần thiết

phải sử dựng chơng trình con chúng

ta đi xét bài toán 2

GV: Đa ra bài toán

GV: Từ bài toán trên một em xác

định Input, Output?

HS: Trả lời.

GV: Để giải đợc bài toán trên ta cần

phải làm gì?

HS: Trả lời

GV: Tạo 1 biến: đếm số lợng số

nguyên tố Lần lợt với mỗi số ai (với i=1, ,n) ta kiểm tra số đó có là

số nguyên tố hay không Nếu là số nguyên tố thì tăng biến đếm lên 1

đơn vị Nh vậy với N = 50 thì ta phải viết đi viết lại 50 lần dãy lệnh tơng tự nhau để kiểm tra một số nguyên

d-ơng có phải là số nguyên tố hay không?

GV: Nh vậy chúng ta thấy đợc việc

Trang 6

* Khái niệm chơng trình con (SGK)

* Lợi ích của việc sử dụng chơng trình

con

- Tránh đợc việc phải lặp đi lặp lại cùng

một dãy lệnh nào đó VD: Bài toán 1, 2

- Hỗ trợ việc thực hiện các chơng trình

lớn VD: Bài toán quản lý điểm

- Phục vụ cho quá trình trừu

tợng hoá Ví dụ khi sử dụng các hàm

toán học nh sin(x), cos(x), ta không cần

xem nó đợc xây dựng nh thế nào Trừu

t-ợng hoá là t tởng chủ đạo để xây dựng

chơng trình nói chung và chơng trình có

cấu trúc nói riêng.

-Mở rộng khả năng ngôn ngữ Ví dụ:

Trong bài toán 1 ta xây dựng thêm đợc

ch-ơng trình con luỹ thừa

- Thuận tiện cho phát triển, nâng cấp

ch-ơng trình

cần thiết phải sử dụng chơng trình con trong chơng trình

GV: Qua các ví dụ trên ta có khái

niệm chơng trình con Vậy mời 1 em

đọc khái niệm chơng trình con

HS: Đọc khái niệm chơng trình con

trong SGK

GV: Qua hai ví dụ trên một em cho

biết sử dụng chơng trình con có những lợi ích gì?

GV (Giải thích): Do chơng trình đợc

tạo thành từ các chơng trình con nên

dễ đọc, dễ hiểu, dễ kiểm tra và hiệu chỉnh Việc nâng cấp, phát triển chơng trình con nào đó, thậm chí bổ sung thêm các chơng trình con mới nói chung không gây ảnh hởng tới các

ch-ơng trình con khác

* Lu ý: Nếu còn thời gian thì yêu cầu

học sinh suy nghĩ và đa ra các bài toán cần thiết phải sử dụng chơng trình con

III Củng cố

Tóm lại qua bài học hôm nay chúng ta cần lu ý:

 Chơng trình con

o Dãy lệnh thực hiện 1 công việc nào đó

Trang 7

o Xây dựng nên chơng trình chính và có thể đợc xây dựng từ các chơng trình con khác

o Đợc gọi từ nhiều vị trí khác nhau

 Khi nào thì cần thiết phải sử dụng chơng trình con: Khi chơng trình lặp đi lặp lại các đoạn lệnh tơng tự nhau

 Lợi ích của việc sử dụng chơng trình con

IV Dặn dò

Học bài cũ và đọc trớc mục 2.Phân loại và cấu trúc của chơng trình con

V Rút kinh nghiệm

Trang 8

NhËn xÐt cña gi¸o viªn híng dÉn

Ngµy th¸ng n¨m 2008

Gi¸o viªn híng dÉn

Ngày đăng: 30/06/2014, 16:00

HÌNH ẢNH LIÊN QUAN

Bảng phụ: - Bai 17 -Tin 11 - Tiet 39
Bảng ph ụ: (Trang 1)

TỪ KHÓA LIÊN QUAN

w