Mục đích: Bài học này giúp học sinh nắm được câu lệnh lặp với số lần không định trước - câu lệnh WHILE.. Yêu cầu: Học sinh nắm vững cú pháp cấu trúc, cách hoạt động của câu lệnh.. Phương
Trang 1GIÁO ÁN CHI TIẾT
Bài giảng: TỔ CHỨC LẶP - Tiết 1
Người soạn: Nguyễn Thanh Tùng - Tổ Toán Tin - Trường THPT Hai Bà Trưng
I Mục đích - Yêu Cầu:
1 Mục đích: Bài học này giúp học sinh nắm được câu lệnh lặp với số lần không định trước - câu lệnh WHILE
Vận dụng để giải một số bài toán cơ bản
2 Yêu cầu: Học sinh nắm vững cú pháp (cấu trúc), cách hoạt động của câu lệnh
Giáo viên có hệ thống câu hỏi gợi mở, dẫn dắt vấn đề
II Phương pháp giảng dạy:
- Giải quyết vấn đề và vận dụng mô hình giải thuật để mô phỏng sự hoạt động của câu lệnh WHILE
III Các bước lên lớp:
1 Kiểm tra bài cũ:
Câu hỏi 1: Trình bày cú pháp câu lệnh IF Giải thích các thành phần trong câu lệnh Câu hỏi 2: Hãy trình bày cách thực hiện của câu lệnh IF
Câu hỏi 3: Câu lệnh ghép là gì? Cho ví dụ
Trả lời:
- Cú pháp câu lệnh IF: IF A THEN B ELSE C;
Trong đó: A là điều kiện là biểu thức quan hệ hoặc biểu thức logic
B, C là các câu lệnh
- Cách thực hiện: khi gặp câu lệnh IF, máy sẽ tính giá trị của điều kiện A, Nếu điều kiện A có giá trị TRUE thì câu lệnh B được thực hiện, ngược lại câu lệnh C được thực hiện
- Câu lệnh ghép: khi một công việc trong TP có từ 2 lệnh trở lên thì ta đặt nó trong cặp từ khóa BEGIN và END;
Ví dụ: Hoán đổi giá trị hai số a và b (khi a<>b)
IF a<>b then
Begin
TG:=a;
Trang 2b:=TG;
End;
2 Nội dung bài mới:
Ta sử dụng đồng thời sử dụng bài toán này để áp dụng cho Tổ chức lặp - tiết 2 Mục đích để sau khi học xong bài Tổ chức lặp, HS có thể so sánh 2 cấu trúc lặp Bài toán: Viết chương trình tính tổng S=12+22+32+ +N2
Với N nhập vào từ bàn phím
Nội dung ghi bảng Hoạt động của thầy Hoạt động của trò
1 Bài toán:
Viết chương trình tínhtổng
S=12+22+32+ +N2
Với N nhập vào từ bàn phím
Sơ đồ thuật toán:
Trong khi i≤N làm công
việc: S:=S+i2 và i:=i+1
2 Lặp một số lần chưa
biết trước: Câu lệnh While
Gọi HS xác định Input và Output của bài toán
- GV đưa ra sơ đồ thuật toán
GV gọi HS giải thích sơ đồ hoạt động của thuật toán
Sau đó GV đưa ra minh họa Qua việc minh họa bài toán cho HS thấy: trong khi i còn nhỏ hơn N thì còn thực hiện công việc công việc: cộng bình phương i vào cho S, và tăng i lên 1 đơn vị
Sau đó quay lại kiểm tra i<=N Đến 1 lúc nào đó i>N thì kết thúc công việc
Cho HS chuyển thể sang ngôn ngữ tiếng Anh
Đó cũng chính là câu lệnh
mà chúng ta sẽ học tiết này
GV đưa ra cấu trúc lặp WHILE
- Input: N
- Output: S
WHILE i≤N DO Begin
S:=S+i*I;
i:=i+1;
End;
S:=0; i:=1;
i<=N
S:=S+sqr(i);
i:=i+1;
Tru False
Trang 3Nội dung ghi bảng Hoạt động của thầy Hoạt động của trò
a Cú pháp:
WHILE A DO B;
b Sơ đồ hoạt động:
c Cách hoạt động:
S:=0; i:=1;
WHILE i<=N DO
Begin
S:=S+SQR(i);
i:=i+1;
End;
S:=0; i:=1; N:=5;
WHILE i<=N DO
Begin
S:=S+SQR(i);
Gv gọi HS giải thích các thành phần trong câu lệnh
GV đưa ra cách thực hiện:
Bằng sơ đồ Sau đó gọi HS dựa vào cú pháp và nhìn vào sơ đồ và nêu cách thực hiện
GV cho HS tự ghi cách hoạt động
- Dựa vào sơ đồ thuật toán
và cách hoạt động cho HS ghi đoạn CT tính tổng trên
Ta thấy công việc tính tổng
có 2 lệnh do đó ta phải viết như thế nào?
Hàm gì trong TP cho kết quả
là bình phương của một số?
Cho HS về nhà hoàn chỉnh đoạn CT trên thành 1 CT
- GV đưa ra lại đoạn CT tính tổng Với N=5, i=1;
Sau đó click vào nút để làm mất dòng i:=i+1;
Nếu không có dòng lệnh
WHILE, DO: tư khóa A: điều kiện - biểu thức logic hoặc biểu thức quan hệ B: câu lệnh
- Chừng nào điều kiện A còn đúng thì câu lệnh B còn được thực hiện, ngược lại khi điều kiện A nhận giá trị sai thì kết thúc câu lệnh WHILE
- Ta sử dụng câu lệnh ghép
Ta đặt 2 câu lệnh đó trong cặp từ khóa Begin và End; Hàm SQR(x)
-Nếu không có dòng lệnh đó thì i luôn không đổi, tức là i luôn nhỏ hơn N và điều kiện không bao giờ False nên vòng lặp sẽ thực hiện vô hạn
A
B Tru False
Trang 4
End;
S:=0; i:=6; N:=5;
WHILE i<=N DO
Begin
S:=S+SQR(i);
i:=i+1;
End;
Chú ý:
+ Trong thân câu lệnh B phải
có cơ chế thay đổi điều kiện
A từ True thành False
+ Ngay từ đầu điều kiện A
nhận giá trị False thì câu
lệnh B B không được thực hiện
lần nào
3 Bài toán ứng dụng:
Tìm UCLN của 2 số nguyên
dương M,N; M,N nhập vào
từ bàn phím
Sơ đồ:
i:=i+1; thì đoạn CT trên sẽ thực hiện như thế nào?
GV click vào nút để hiện lại dòng lệnh i:=i+1; và thay i=6 Lúc này đoạn CT trên thực hiện như thế nào?
GV đưa ra 2 chú ý:
+ Trong thân câu lệnh B phải
có cơ chế thay đổi điều kiện
A từ True thành False
+ Ngay từ đầu điều kiện A nhận giá trị False thì câu
lệnh B không được thực hiện B
lần nào
Yêu cầu HS xác định Input
và Output của bài toán
GV yêu cầu HS đưa ra sơ đồ thực hiện và cách thực bằng lời của thuật toán này (đã học năm lớp 10)
GV gọi HS nhìn vào sơ đồ minh họa việc thực hiện tìm UCLN dựa theo sơ đồ khối
-Lúc này i>N (tức là i=6, N=5) nên điều kiện sẽ sai ngay từ đầu do đó công việc không được thực hiện lần nào mà kết thúc vòng lặp WHILE ngay lập tức
Input: M và N nguyên dương Output: UCLN (M,N)
Bằng lời:
B1:: Nhập M,N
B2:: Nếu M=N thì lấy M làm ƯCLN, sang B44
B3:: Nếu M>N thì thay M bằng M-N, ngược lại thay N
Be in
Nhập M,N
M=N
M>N
M:=M-N N:=N-M
TR E
FALS
Trang 5Nội dung ghi bảng Hoạt động của thầy Hoạt động của trò
- GV yêu cầu HS xem chương trình tìm UCLN ở SGK trang 50
bằng N-M Rồi quay lại B22
B4:: Đưa ra kết quả ƯCLN
và kết thúc
IV Củng cố bài học:
1 GV yêu cầu HS nhắc lại cú pháp của câu lệnh WHILE và nhìn vào sơ đồ để nêu cách hoạt động của câu lệnh
2 Bài tập về nhà:
Bài 4 - trang 55; Bài 6c trang 56
3 Bài tập làm thêm:
a Viết chương trình tìm N lớn nhất sao cho S<2005; với S=12+22+32+ +N2
b Tìm Bội chung nhỏ nhất của 2 số nguyên dương M, N biết rằng Bội chung nhỏ nhất của 2 số M,N bằng tích của M và N chia cho UCLN(M,N)