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

bài 10 cấu trúc lặp

6 1,3K 23
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cấu trúc lặp
Trường học Trường Trung Học Phổ Thông
Chuyên ngành Tin học
Thể loại bài giảng
Năm xuất bản 2007
Thành phố Hà Nội
Định dạng
Số trang 6
Dung lượng 112,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

+ Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước.. + Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước.. + Tiếp tục rèn luyệ

Trang 1

Tuần : 6,7 Ngày soạn : 10/09/07 Tiết : 12,13,14

I/- Mục đích – yêu cầu :

 Về kiến thức :

+ Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán

+ Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước

+ Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể

 Về kỹ năng :

+ Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp

+ Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước

+ Viết được thuật toán giải một số bài toán đơn giản

 Về thái độ :

+ Tạo sự ham muốn cho HS giải toán bằng NNLT trên máy tính

+ Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như xem xét giải quyết vấn đề 1 cách cẩn thận, chu đáo, có sáng tạo, không thoả mãn với kết quả ban đầu đạt được Điều này thể hiện trong suốt quá trình từ khi phân tích bài toán đến khi lựa chọn dữ liệu, cấu trúc điều khiển thực hiện thuật toán, viết chương trình và cuối cùng là dịch, sửa lỗi, kiểm thử, cải tiến thích ứng với các bộ dữ liệu và trạng thái bài toán khác nhau

II/- Chuẩn bị :

 GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy

+ Cần nêu rõ ý nghĩa của cấu trúc lặp ( thông qua ví dụ trong SGK 42)

+ Chuẩn bị minh hoạ Tong_1a và Tong_1b trên giấy khổ lớn

 HS : + Đọc trước sách giáo khoa ở nhà

 PP : + Diễn giảng ,phát vấn và các hình vẽ trực quan (nếu có )

III/- Hoạt động dạy học :

1 Ổn định lớp : Kiểm tra sĩ số (1’)

2 Kiểm tra bài cũ : (4’)

? Hãy viết cú pháp của câu lệnh rẽ nhánh dạng thiếu và dạng đủ đồng thời nêu quá trình thực hiện lệnh ?

3 Nội dung bài mới :

TG Hoạt Động Của GV Hoạt Động Của HS Nội Dung Bài

Tiết

12 + Đặt vấn đề : Cấu trúc lặp là

điều khiển thực hiện công việc

lặp đi lặp lại khi chưa đủ số lần

lặp hoặc khi 1 điều kiện nào đó

còn đúng Sau đây ta xét khái

Trang 2

niệm lặp

Vd 1 : VCT tính điểm cho HS 1

lớp (giả sử lớp có 50 HS) sẽ

phải lặp lại 1 số thao tác như

sau với mỗi HS :

+ Nhập họ tên HS (hoặc SBD)

+ Nhập điểm các môn

+ Tính tổng điểm hoặc tính

điểm trung bình

- Nếu ctrình trên viết đi viết lại

các câu lệnh trên nhiều lần thì

rõ ràng không thuận tiện Vì

thế NNLT sẽ đưa ra cấu trúc

lặp, ta chỉ cần viết các câu lệnh

đó cho 1 HS Sau đó cho ctrình

thực hiện lặp lại các thao tác

đó với các HS khác Quá trình

dừng lại khi ta nhập đủ số điểm

cho 50 HS.hoặc nhập chưa đủ

số điển cho 50 HS.( Lặp với số

lần biết trước và lặp với số lần

chưa biết trước)

- Quá trình lặp không thể dừng

được gọi là quá trình lặp vô

hạn Do đó cần phải có 1 đk sai

để sau 1 số lần lặp thì vòng lặp

sẽ kết thúc

Vd 2 : Bài toán gửi tiền tiết

kiệm vào ngân hàng Hàng

tháng phải tính lãi và cộng

thêm vào gốc đang gửi hay nói

cách khác gốc của tháng sau =

gốc + lãi tháng trước

Vd 3 : Tính tổng của một đoạn

số nguyên mà không được

dùng công thức

? Hãy cho biết 2 thuật toán trên

có những gì giống và khác

nhau

+ Giống nhau : đều thực hiện vòng lặp

1/- Khái niệm lặp :

Xét 2 bài toán như sau với a là số nguyên và a >2

Bài toán 1 : Tính và sau đó đưa

kết quả ra màn hình tổng

S = 1a + a 11 + a 12+ + a 1100

Bài toán 2 : Tính và sau đó đưa

kết quả ra màn hình tổng

S = 1

a + 1

1

a  + 1

2

a  + + 1

a N 

Cho đến khi 1

a N < 0,0001

Cách giải :

 S được gán giá trị 1a ;

 Tiếp theo mỗi lần cộng vào tổng S một giá trị a N1

 với N= 1,2,3,

- Đối với bài toán 1, số lần lặp là 100 và việc cộng vào tổng S sẽ kết thúc khi đã thực hiện việc cộng 100 lần

- Đối với bài toán 2, số lần lặp chưa biết trước nhưng việc cộng vào tổng

S sẽ kết thúc khi thoả điều kiện 1

a N < 0.0001 Trong lập trình, có những thao tác phải thực hiện lặp đi lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.Cấu trúc lặp thường có 2 loại :

- Lặp với số lần biết trước

- Lặp với số lần chưa biết trước Các NNLT nào cũng cung cấp 1 số câu lệnh để mô tả các cấu trúc lặp

2/- Lặp với số lần biết trước và câu lệnh For – Do :

Xét 2 thuật toán Tong_1a và Tong_1b (Xem SGK trang 43 )

Trang 3

13

Sau khi so sánh và giải thích 2

thuật toán trên ta kết luận như :

- Ở Tong_1a thì chúng ta áp

dụng câu lệnh lặp dạng tiến

- Ở Tong_1b thì chúng ta áp

dụng câu lệnh lặp dạng lùi

+ Sau đây chúng ta sang phần

cú pháp

- Dạng tiến : Sau mỗi lần thực

hiện biến đếm tăng lên 1 hoặc

ta có thể dùng hàm succ(i)

- Dạng lùi : Sau mỗi lần thực

hiện biến đếm giảm đi 1 hoặc

ta có thể dùng hàm Pred(i)

? Ở dạng tiến vòng lặp kết thúc

khi nào ?

? Ở dạng lùi vòng lặp kết thúc

khi nào ?

+ Đặt vấn đề: ở tiết trước

chúng ta đã học câu lệnh lặp ở

2 dạng tiến và lùi, hôm nay

chúng ta vận dụng 2 dạng này

để áp dụng cho 2 thuật toán

Tong_1a và Tong_1b như sau :

và lặp lại 100 lần

+ Khác nhau : ở thuật toán tong_1a tăng N lên 1 sau mỗi lần thực hiện (N N+ 1 ) , còn ở thuật toán Tong_1b thì giảm đi 1 sau mỗi lần thực hiện (N N-1)

+ Vòng lặp kết thúc khi Biến đếm >= giá trị cuối

+ Vòng lặp kết thúc khi Biến đếm <= giá trị đầu

Cú pháp lặp :

 Dạng tiến :

For < Biến đếm > := < giá trị đầu >

To < giá trị cuối > Do < câu lệnh > ;

 Dạng lùi :

For < Biến đếm > := < giá trị cuối >

Downto <giá trị đầu>Do <câu lệnh>;

Trong đó :

- Biến đếm : là biến đơn có kiểu nguyên

- Giá trị đầu và giá trị cuối : là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.(Nếu giá trị đầu lớn hơn giá trị cuối thì dòng lặp không được thực hiện

Quá trình thực hiện lệnh :

- Dạng tiến : Được thực hiện tuần tự, với biến đếm nhận lần lượt các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối

- Dạng lùi : Được thực hiện tuần tự, với biến đếm nhận lần lượt các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu

Ví dụ 1 : Xét 2 chương trình tính : Tong_1a và Tong_1b

Program Tong_1a ; Uses crt ;

Var S : real ;

a, N : integer ;

Begin

Write(‘Nhap vao gia tri a :’) ;

Trang 4

Vd 1 : VCT tính tổng các số

nguyên chẳn hoặc lẽ từ 1 đến

50

Program sochan ;

Uses crt ;

Var T, I : integer ;

Begin

For I := 1 to 50 do

If I (mod 2 = 0 ) Then

T := T + I ;

Writeln( Tong =’, T );

Readln ;

End.

Vd 2 : VCT tổng S = 1 + 2 + 3

+ + N

Program Vi_du 2;

Uses crt ;

Var N, I,S : integer ;

Begin

Write(‘Nhap vao gia tri N:’) ;

Readln(N) ;

S := 0 ;

For I := 1 to N do

S := S + I ;

Writeln(‘ Tong S =’ , S ) ;

Readln ;

End.

Readn(a) ;

S := 1/a ;

For N := 1 to 100 do

S := S + 1/(a+ N) ; Writeln(‘ Tong S la : ‘, S :8:2) ; Readln ;

End.

Program Tong_1b ; Uses crt ;

Var S : real ;

a,N : integer ;

Begin

Write(‘Nhap vao gia tri a :’) ; Readn(a) ;

S := 1/a ;

For N := 100 Downto 1 do

S := S + 1/(a+ N) ; Writeln(‘ Tong S la : ‘, S :8:2) ; Readln ;

End.

Ví dụ 2 : VCT nhập vào 2 số nguyên dương dương M và N(M < N ) , sau đó tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N

Program Vi_du 2 ; Uses crt ;

Var M, N, I : integer ;

T : longint ;

Begin

Write(‘Nhap vao 2 gia tri M va N (M < N) :’) ;

Readn(M,N) ;

T := 0 ;

For I := M to N do

If (I mod 3 =0) or (I mod 5 = 0) then

T := T + I ; Writeln(‘ KET QUA LA : ‘, T) ;

Tiết

Trang 5

Điều Kiện

Câu lệnh

chúng ta đã được học câu lệnh

lặp dạng tiến và dạng lùi đó là

2 dạng lặp với số lần biết

trước, nghĩa là chúng ta sẽ biết

được nó sẽ lặp lại bao nhiêu

lần rồi sau đó kết thúc, hôm

nay chúng ta tiếp tục tìm hiểu

thêm 1 dạng lặp nữa nhưng

chúng ta không biết trước số

lần lặp và dừng lại khi nào Đó

là câu lệnh lặp dạng While –

Do

? Em hãy cho biết vòng lặp

While – Do kết thúc khi nào ?

- Mỗi lần thực hiện công việc

có thể làm thay đổi giá trị của

điều kiện nên đến 1 lúc nào đó

đk lặp không còn đúng nữa và

cấu trúc sẽ kết thúc

+ Vòng lặp kết thúc khi 1 điều kiện cho trước được thoả mãn

End

3/- Lặp với số lần chưa biết trước và câu lệnh While – Do :

Để giải bài toán 2 ta xây dựng thuật

toán Tong_2 như sau :

B1 : S  1/a ; N  0 ; {ktạo s và N}

B2 : Nếu 1/(a+N) < 0.0001 chuyển

sang B5 ;

B3 : N  N + 1 ;

B4 : S S + 1/(a+N) rồi quay lại B2;

B5 : Đưa S ra màn hình, rồi kết thúc ;

Cú pháp : While < điều kiện > Do

< Câu lệnh > ; Trong đó :

- Điều kiện : là biểu thức lôgic ;

- Câu lệnh : là 1 câu lệnh đơn hoặc ghép

Lưu đồ :

sai đúng

Trang 6

+ Nhắc lại bài toán gửi tiền

vào ngân hàng : Số tiền ban

đầu là A, muốn gởi và ngân

hàng và có số tiền là B và

(B>A) thì cần gởi trong bao lâu

với lãi suất hàng tháng là K %

+ Trong thuật toán Tong_1a ,

câu lệnh lặp

For N := 1 to 100 do

S := S + 1/(a+N) ;

Đã bao gồm cả ba bước 2, 3, 4

của thuật toán

Quá trình thực hiện lệnh :

- Kiểm tra và tính giá trị của biểu thức điều kiện

- Nếu điều kiện đúng thì thực hiện công việc(1 lần), ngược lại sẽ kết thúc vòng lặp

 Sơ đồ khối,thuật toán và chương trình của 2 ví dụ hãy xem SGK trang 46,47và 48

Chú y ù : Các câu lệnh trong

vòng lặp thường được lặp lại nhiều lần, vì vậy để tăng hiệu quả của chương trình thì những thao tác không cần lặp lại nên đưa ra ngoài vòng lặp

4 Củng cố :(4’)

- Nhắc lại các khái niệm về cấu trúc lặp

- Cấu trúc lặp với số lần biết trước :

Dạng lặp tiến : For <Biến đếm> := <giá trị đầu > To <giá trị cuối> Do <câu lệnh > ;

 Dạng lặp lùi :For < Biến đếm > := <giá trị cuối>Downto<giá trị đầu>Do<câu

lệnh>;

- Cấu trúc lặp với số lần chưa biết trước :

While < điều kiện > Do

< Câu lệnh > ;

5 Dặn dò :(1’)

- VCT Tính tổng S= 1/1 + 1/2 + 1/3 + + 1/N ,sau đó in kết quả ra màn hình

- Học bài và chuẩn bị Bài Tập Và Thực Hành 2 trong SGK trang 49 và 50.

Châu Thành,ngày……Tháng ……Năm 2007

Ngày đăng: 05/09/2013, 22:10

HÌNH ẢNH LIÊN QUAN

B5 : Đưa S ra màn hình, rồi kết thúc ; Cú pháp : - bài 10 cấu trúc lặp
5 Đưa S ra màn hình, rồi kết thúc ; Cú pháp : (Trang 5)
- VCT Tính tổng S= 1/1 + 1/2 + 1/3 + ... + 1/N ,sau đó in kết quả ra màn hình.            - Học bài và chuẩn bị Bài Tập Và Thực Hành 2  trong SGK trang 49 và 50. - bài 10 cấu trúc lặp
nh tổng S= 1/1 + 1/2 + 1/3 + ... + 1/N ,sau đó in kết quả ra màn hình. - Học bài và chuẩn bị Bài Tập Và Thực Hành 2 trong SGK trang 49 và 50 (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w